谷歌Gms开机向导自定义界面中仿隐私政策监听上划到底

本文介绍了如何参照谷歌原生代码,在Android的Gms开机向导界面中实现监听用户上划到底的行为。通过在AndroidManifest.xml中添加activity,设计activity_privacy.xml布局文件,并在PrivacyActivity.java中编写相关Java代码来完成这一功能。

参考了谷歌原生代码,实现了监听滑动到底的功能。

1.AndroidManifest.xml中添加activity

<activity android:name=".PrivacyActivity"
    android:theme="@style/GlifTheme.Light"
    android:exported="true">
</activity>

2.编写布局问题 activity_privacy.xml

<com.google.andriod.setupdesign.GlifLayout
    android:id="@+id/privacy_layout"
    android:layout_widht="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_widht="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        //中间是大量的文本,超出一屏
    </LinearLayout>
</com.google.andriod.setupdesign.GlifLayout>

3.编写Java代码 PrivacyActivity.java

package com.android.settings;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
import com.google.android.setupdesign.template.RequireScrollMixin;//重要 监听滑动的东西

public class PrivacyActivity extends AppCompatActivity {
    private FooterBarMixin mFooterBarMixin;
    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.activity_privacy);
        mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
        mFooterBarMixin .setPrimaryButton(
            new FooterButton.Builder(this)
                .setText(R.string.agree)
                .setListener(this:onNextButtonClick)
                .setButtonType(FooterButton.ButtonType.NEXT)
                .setTheme(R.style.SudGlifButton_Primary)
                .build()
            );
        FooterButton mNextButton = mFooterBarMixin.getPrimaryButton();
        final RequireScrollMixin rsMixin = getLayout().getMixin(RequireScrollMixin .class);
        rsMixin.requireScrollWithButton(this, mNextButton , R.string.more, this::onNextButtonClick);
        //在超过一屏内容时,滑到底部前,显示“更多”,滑到底部后,显示“同意”
        rsMixin .setOnRequireScrollStateChangedListener(
            scrollNeeded -> {
                final int primaryButtonTextRes = scrollNeeded 
                    ? R.string.more : R.string.agree;
                mNextButton.setText(this,primaryButtonTextRes);
            });
    }
    protected void onNextButtonClick(View view) {
        //同意点击事件
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值