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">