我有下面的布局
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/DarkGray"
android:orientation="vertical">
<EditText
android:id="@+id/etCaption"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:layout_weight="1"
android:gravity="start|top" />
<TextView
android:id="@+id/tvCounter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_gravity="right" />
</LinearLayout>
本质上,“编辑”文本位于底部的屏幕和文本视图中。
当我单击“编辑文本”时,将显示键盘,它覆盖了底部的文本视图。
如何确保将文本视图向上推,以便用户在输入编辑文本时可以看到它。
我最初将其作为约束布局,但将其更改为linrear布局,但仍然无法正常工作
谢谢
答案 0 :(得分:0)
带有layout_height="match_parent"
的节点将不会被推向任何方向,因为布局没有可移动的空间。这应该是layout_height="wrap_content"
(“显示布局边界”)。
在android:windowSoftInputMode="adjustResize"
的{{1}}中将"adjustPan|adjustResize"
或activity
添加到Manifest.xml
时,应该在键盘显示和消失时调整布局的大小。
活动的主窗口始终会调整大小,以便为屏幕上的软键盘腾出空间。
,并且这种(或相当相似的)效果由材料TextInputLayout提供:
api "com.google.android.material:material:1.0.0"
例如(注意app:counterEnabled
和app:counterMaxLength
属性):
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="@string/hint_caption"
android:inputType="textNoSuggestions"
android:text="@={item.caption}"
app:counterEnabled="true"
app:counterMaxLength="50"/>
</com.google.android.material.textfield.TextInputLayout>
答案 1 :(得分:0)
您需要将此声明发送到manifest.xml
。
android:windowSoftInputMode="stateVisible|adjustResize"
确保在活动textview
中声明了它。
答案 2 :(得分:0)
要在键盘处于打开状态时调整布局
尝试以下代码: 清单
<activity android:name=".MainActivity"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
您要在其中调整键盘的活动中添加此行
android:windowSoftInputMode="adjustResize"
查看屏幕截图:
我希望它对您有用