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)

相关推荐