我有一个包含ListView的Fragment,当我选择键盘显示的第二个EditText时,我将三个EditText和一个Spinner添加到一个Spinner,但我无法将列表视图滚动到列表视图中的最后两个剩余元素键盘可见。
几乎就像列表视图无法识别软键盘可见,最后两个剩余元素仍在软键盘后面。
以下是相关观点的屏幕截图和XML。
AndroidManifest:
<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"
tools:context=".MainActivity$PlaceholderFragment"
android:background="@color/generic_grey">
<ListView
android:id="@+id/form_base_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"
android:descendantFocusability="afterDescendants"
/>
</RelativeLayout>
列表视图:
<?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="wrap_content"
android:background="@color/white"
android:paddingBottom="5dp">
<TextView
android:id="@+id/form_multi_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/testing"
android:padding="10dp"/>
<EditText
android:id="@+id/form_multi_edit"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_below="@+id/form_multi_txt"
android:layout_marginLeft="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:background="@drawable/edit_text_background"
android:layout_toLeftOf="@+id/form_multi_info_btn"
android:layout_toStartOf="@+id/form_multi_info_btn"
android:inputType="textMultiLine"/>
<ImageButton
android:id="@+id/form_multi_info_btn"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitStart"
android:src="@drawable/form_row_info"
android:background="@android:color/transparent"
android:layout_below="@+id/form_multi_txt"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"/>
</RelativeLayout>
多行视图:
<?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="wrap_content"
android:background="@color/white"
android:paddingBottom="5dp">
<TextView
android:id="@+id/form_select_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/testing"
android:padding="10dp"/>
<Spinner
android:id="@+id/form_select_spinner"
android:layout_width="fill_parent"
android:layout_height="44dp"
android:layout_below="@+id/form_select_txt"
android:layout_marginLeft="5dp"
android:spinnerMode="dialog"
android:layout_toLeftOf="@+id/form_select_info_btn"
android:layout_toStartOf="@+id/form_select_info_btn"
android:background="@android:drawable/btn_dropdown"
/>
<ImageButton
android:id="@+id/form_select_info_btn"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitStart"
android:src="@drawable/form_row_info"
android:background="@android:color/transparent"
android:layout_below="@+id/form_select_txt"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"/>
</RelativeLayout>
微调:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textViewSpinnerItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
style="@style/SpinnerTextViewItem"
/>
微调器内的视图:
subprocess.Popen(apt-get numpy)
答案 0 :(得分:1)
将所有标记放在实际布局中,并将相对布局放在ScrollView中。由于ScrollView只需要一个孩子。
<?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="wrap_content"
android:background="@color/white"
android:paddingBottom="5dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/form_multi_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/testing"
android:padding="10dp"/>
<EditText
android:id="@+id/form_multi_edit"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_below="@+id/form_multi_txt"
android:layout_marginLeft="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:background="@drawable/edit_text_background"
android:layout_toLeftOf="@+id/form_multi_info_btn"
android:layout_toStartOf="@+id/form_multi_info_btn"
android:inputType="textMultiLine"/>
<ImageButton
android:id="@+id/form_multi_info_btn"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitStart"
android:src="@drawable/form_row_info"
android:background="@android:color/transparent"
android:layout_below="@+id/form_multi_txt"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"/>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
答案 1 :(得分:0)
这是因为一旦软键盘打开并且你没有设置它,你的活动布局需要调整。您需要做的是编辑您的清单并添加
android:windowSoftInputMode="adjustResize"
到右<activity>
标记。这是文档中的Handling Input Method Visibility章节,您可能需要阅读以了解可以使用windowSoftInputMode