Activity 底部布局顶不起来?是否使用了 ImmersionBar
开发中,比如页面底部有个输入的字数统计,或者底部有按钮,而在键盘弹起来的时候我们需要它将布局顶起来,不然被键盘挡住体验不友好,而实现底部被顶起最常用的是android:windowSoftInputMode="stateUnchanged|adjustPan" ,但是在我的代码里面并不好用,而且这种方法影响的是整个Activity,感觉不太好。
解决方案:在EditText外面使用ScrollView做父布局,
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/llRootView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" android:orientation="vertical"> <ImageView android:id="@+id/btn_left" android:layout_width="@dimen/dp_35" android:layout_height="@dimen/dp_35" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/dp_16" android:background="?attr/selectableItemBackgroundBorderless" android:onClick="onHeadLeftButtonClick" android:padding="@dimen/dp_8" android:src="@drawable/left_back_icon" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="98dp"> <com.dylan.library.widget.DrawableTextView android:id="@+id/tvDeleteScript" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon_script_delete" android:drawablePadding="2dp" android:drawableTint="#FF2D2D2D" android:text="删除" android:textSize="12sp" android:visibility="gone" app:drawableLeftHeight="12dp" app:drawableLeftWidth="12dp" /> <com.dylan.library.widget.DrawableTextView android:id="@+id/tvShareScript" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="14dp" android:drawableLeft="@drawable/icon_script_share" android:drawablePadding="2dp" android:drawableTint="#FF2D2D2D" android:text="分享" android:textSize="12sp" android:visibility="gone" app:drawableLeftHeight="12dp" app:drawableLeftWidth="12dp" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="复制到我的剧本" android:textColor="#ffffa000" android:textSize="12sp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp"/> </RelativeLayout> <EditText android:id="@+id/edtTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:background="#0000" android:hint="剧本标题" android:paddingLeft="15dp" android:textColor="#FF2D2D2D" android:textColorHint="#FF9B9B9B" android:textSize="22sp" /> <ScrollView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:fillViewport="true"> <EditText android:id="@+id/edtContent" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#0000" android:gravity="top" android:hint="剧本内容" android:paddingLeft="15dp" android:paddingTop="12dp" android:paddingRight="15dp" android:paddingBottom="8dp" android:textSize="14sp" /> </ScrollView> <RelativeLayout android:layout_width="match_parent" android:layout_height="25dp" android:layout_marginBottom="14dp" android:gravity="center_vertical"> <TextView android:layout_width="67dp" android:layout_height="17dp" android:text="0/10000" android:textColor="#ff959595" android:textSize="12sp" android:layout_marginLeft="16dp" /> <ImageView android:id="@+id/ivAiButton" android:layout_width="90dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:layout_marginRight="15dp" android:src="@drawable/icon_ai_write_button" /> </RelativeLayout> </LinearLayout>
效果图
如果你项目用使用到了 ImmersionBar:则下面要传参 true,不然顶不起来
赞 (0)