我有一个“保存”按钮,我想将它与软键盘一起向上推。因此,当用户在我的布局中单击 EditText 时,按钮必须保持在键盘上方。现在按钮隐藏在键盘下方。你怎么做到这一点?
提前致谢!
我有一个“保存”按钮,我想将它与软键盘一起向上推。因此,当用户在我的布局中单击 EditText 时,按钮必须保持在键盘上方。现在按钮隐藏在键盘下方。你怎么做到这一点?
提前致谢!
您需要将键盘的输入模式设置为adjustResize
. 您可以在清单中将以下行添加到您的活动属性中:
android:windowSoftInputMode="adjustResize"
这是在活动中添加的属性的示例:
<activity
android:name=".activity.MyActivity"
android:windowSoftInputMode="adjustResize">
</activity>
随着 Inthathep 的回答,您必须在父视图组中添加一个属性
android:fitsSystemWindows="true"
根据需要工作。即,在清单文件中,为活动添加
android:windowSoftInputMode="adjustResize"
例如。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:fitsSystemWindows="true" <!-- add this -->
android:orientation="vertical"
>
<EditText
android:id="@+id/et_assetview_comment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="80dp"
android:background="@color/white"
android:hint="Enter comments"
/>
<Button
android:id="@+id/btn_assetview_postcomment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="POST"
/>
</LinearLayout>
像这样订购您的布局,您将能够将按钮放在键盘上方
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button_next"
android:background="#0ff"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="250dp"
android:hint="Hint"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABC"
android:textSize="50sp"
/>
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/button_next"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:layout_margin="10dp"
android:text="Button Next"
/>
</RelativeLayout>
在android清单中
<application
...
>
<activity android:name=".YourActivity"
android:windowSoftInputMode="adjustResize"
>
</activity>
</application>
请注意,除了RelativeLayout
,您还可以使用其他ViewGroup
类似LinearLayout
的重量CordinatorLayout
,...
所以这是一个很老的帖子,但我对提供的答案感到很困惑。oneavi 和 Intahep 都是正确的,但让我告诉你确切的去向android:windowSoftInputMode="adjustResize"
。
在 Android 清单中
<activity android:name=".DataScreen" />
<activity android:name=".PauseScreen" />
<activity android:name=".RouteInfo"
android:windowSoftInputMode="adjustResize"> <!--This goes in the specific activity with the button -->
</activity>
最好的方法是隐藏击键,如有必要,按下键盘上方的按钮
android:windowSoftInputMode="adjustResize|stateHidden"
附加点"adjustResize"
除非您的活动是全屏的,否则
上述任何一项都将起作用。那是我的情况。检查您的活动代码以确保其不是全屏显示。
这个简单的设置使用键盘向上滚动整个布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/recycler_view"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/button"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Button" />
</RelativeLayout>
关键点:
在 AndroidX 中:
用于CoordinatorLayout
主父布局并NestedScrollView
为您的内容添加一个布局或按钮,在CoordinatorLayout
软键盘上方的按钮中添加您的布局或按钮
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:isScrollContainer="true" >
.......
</androidx.core.widget.NestedScrollView>
<com.google.android.material.button.MaterialButton
android:id="@+id/send_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="@string/login" />
照片: