我的布局有问题。在我的布局中,我有一个EditText,一个DatePicker,一个TimePicker和一个Button。单击EditText会打开键盘,导致图片中显示的问题。 “android:windowSoftInputMode”中的不同方法没有改变任何东西。现在我不知道如何解决这个问题。
在输入文字之前隐藏其他组件是否是个好主意?这里的预期行为是什么?
<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" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="patrickengelkes.com.alleneune.activities.CreateEventActivity">
<EditText
android:id="@+id/event_name_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<DatePicker
android:id="@+id/event_date_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/event_name_edit_text"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/send_event_invites"
android:text="@string/send_event_invites_to_members"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TimePicker
android:id="@+id/event_time_picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/send_event_invites"
android:layout_alignLeft="@+id/event_time_picker"
android:layout_alignStart="@+id/event_time_picker" />
提前致谢!
答案 0 :(得分:1)
我认为以下是问题所在:
您告诉DatePicker
它应该低于固定在顶部的EditText
!
然后你告诉你的TimerPicker
高于你固定在底部的Button
。
现在,当您打开SoftInput
按钮向上移动时,TimePicker
也是如此。但EditText保持固定在顶部,您的DatePicker
也是如此。
TimePicker
和DatePicker
都得到wrap_content
,因此TimePicker
可以进入DatePicker
的唯一方式!而这正是它的样子!
我会告诉TimePicker
我应该保持低于DatePicker
:
android:below=="@id/event_date_picker"
看看会发生什么!因为在这种情况下,它被迫保持在DatePicker
以下,并且不再像DatePicker
那样漂浮在一层!我没有尝试过,也许你需要正确地声明android:windowSoftInputMode
。因为我不确定它现在是如何宣布的!
希望它有所帮助!