2023年7月15日发(作者:)
解决android输⼊法弹出输⼊框被遮挡的问题解决 android 输⼊法弹出输⼊框被遮挡的问题由于本⼈懒,也从不写博客,之所以写是因为这次开发 ’⼜遇到‘ 输⼊法这个问题了,好久以前有遇到过,突然发现还是很有必要把他分享出来,⾔归正传,下⾯就把解决的⼏种⽅法贴上。1,⾸先看效果图:2,实现效果图 (输⼊框没被遮住):解决⽅法⼀:在 ⽂件中的activity⾥加⼊ android:windowSoftInputMode=“stateVisible|adjustResize”解决⽅法⼆:在 Activity 的 onCreate ⾥加⼊getWindow().setSoftInputMode(_INPUT_ADJUST_RESIZE);public class TestActivity extends FragmentActivity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {te(savedInstanceState);setContentView(ty_test);getWindow().setSoftInputMode(_INPUT_ADJUST_RESIZE);}解决⽅法三:把你的 Layout 外⾯再加⼀层 ScrollView , 这样软键盘和输⼊框就可以⼀起滚动解决⽅法四:1,Activity 代码public class TestActivity extends FragmentActivity {// 最外层需要调整的Layoutprivate RelativeLayout rootView;// 滚动的Layoutprivate LinearLayout scrollToInput;@Overrideprotected void onCreate(Bundle savedInstanceState) { te(savedInstanceState); setContentView(ty_test);
rootView = (RelativeLayout) findViewById(ew); scrollToInput = (LinearLayout) findViewById(ToInput);
wTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
//取得 rootView 可视区域
dowVisibleDisplayFrame(rect);
//取得 rootView 不可视区域⾼度 (被其他View遮挡的区域⾼度)
int rootInvisibleHeight = tView().getHeight() - ;
//要是不可视区域⾼度⼤于100,则输⼊键盘就显⽰
if (rootInvisibleHeight > 100) {
int[] location = new int[2];
//取得 scrollToInput 的坐标
ationInWindow(location);
//计算滚动⾼度(rootView),这样 (scrollToInput)在可视区域
int srollHeight = (location[1] + ght()) - ;
To(0, srollHeight);
} else {
//隐藏软键盘
To(0, 0);
}
} });
}}2,activity_
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689430548a247020.html
评论列表(0条)