Android开发那点事

1.解决Android键盘出来把底部按钮顶上来的方法

在AndroidManifest中加入

android:windowSoftInputMode="adjustPan|stateHidden"

注意:加入该句代码后,activity中的EditText,在进入Activity时不会再自动弹出软键盘,设置弹出软键盘代码也无效,EditText可以获得焦点。

2.Recyclerview设置viewholder的缓存数量解决滑动后itemview复用刷新加载太频繁问题

// RecyclerView可以设置自己所需要的ViewHolder数量

mRecyclerView.setItemViewCacheSize(20);

3.EditText判断当前是否获得焦点,焦点的状态

//rich_text是EditText控件
rich_text.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                if (b) {//获得焦点
                    rich_text = (EditText) view;
                }
            }
        });

4.java代码获得控件或者Layout的控件高度和宽度

//mRl_bottom是RelativeLayout,此处可以换成任意控件或layout
mRl_bottom.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int popupWidth = mRl_bottom.getMeasuredWidth();    //  获取测量后的宽度
int popupHeight = mRl_bottom.getMeasuredHeight();  //获取测量后的高度

5.防止进入activity,EditText默认自动获得焦点弹出键盘的处理

解决办法:在EditText的父级控件中设置成

android:focusable="true"
android:focusableInTouchMode="true"

问题:在EditText上一层布局中设置,如果页面内容很多使用了ScrollView,进入activity是不会获取焦点了,键盘也不会弹出了,但是页面会默认滚动到EditText的位置。

处理办法:在xml中最外层的layout中设置

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/Cfafafa"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="vertical">

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值