2016-01-25 309 views
0

ListView的元素我有一个包含一个ListView一个片段,我添加三个的EditText对和一个微调时,我选择第二个EditText上的键盘显示的预期,但我不能滚动列表视图的最后两个键盘可见时列表视图中的其余元素。软键盘隐藏在片段

就好像列表视图不能识别软键盘是可见的,最后两个剩余的元素仍然在软键盘后面。

下面是有问题的视图的屏幕截图和XML。

AndroidManifest:

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:windowSoftInputMode="adjustPan"> 

列表视图:

<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" 
/> 

完整视图: Complete View

查看与键盘:(不能滚动查看最后两个元素) Keyboard visable

+0

使用softInputMode =调整锅清单文件 –

+0

我已经在我的清单 –

回答

0

,那是因为你的活动布局必须一旦软键盘打开就调整好,你没有设置。你需要做的是编辑你的清单,并添加

android:windowSoftInputMode="adjustResize" 

正确的<activity>标记。这里的Handling Input Method Visibility文档的章节,你可能想要阅读,看看你可以设置什么样的行为windowSoftInputMode

+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>