2011-11-25 63 views
1

我一个ExpandableListActivity内对我的应用程序,它是由用大量的EditText组件,其中大部分是数字领域设计一个小的形式。如何正确转发软键盘布局内组件的EditText不重叠?

为了提高填充的可用性,我把属性android:imeOptions="actionNext|actionDone"放在每个EditText文件中,这样每当用户在软键盘上点击Enter键,焦点就会被转发到下一个输入栏。

这工作的重点转到下一个,但是当被聚焦在未来的EditText是另一个的LinearLayout内,键盘不向下平移和其内部重点领域保持由键盘重叠。

对任何输入我怎样才能让它在这个内部编辑框的工作?

这里的布局:

<EditText 
    android:imeOptions="actionNext|actionDone" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer" /> 

<TextView 
    style="@android:style/TextAppearance.Medium" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="FC (bat/min):" 
    android:textColor="@color/monthview_grid_color" /> 

<EditText 
    android:imeOptions="actionNext|actionDone" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer" /> 

<TextView 
    style="@android:style/TextAppearance.Medium" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="FR (inc/min):" 
    android:textColor="@color/monthview_grid_color" /> 

<EditText 
    android:imeOptions="actionNext|actionDone" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer" /> 

<TextView 
    style="@android:style/TextAppearance.Medium" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="PA:" 
    android:textColor="@color/monthview_grid_color" /> 

<LinearLayout 
    android:imeOptions="actionNext|actionDone" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <EditText 
     android:imeOptions="actionNext|actionDone" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.0" 
     android:numeric="integer" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="X" /> 

    <EditText 
     android:imeOptions="actionNext|actionDone" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.0" 
     android:numeric="integer" /> 
</LinearLayout> 

<TextView 
    style="@android:style/TextAppearance.Medium" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Sat. (%):" 
    android:textColor="@color/monthview_grid_color" /> 

<EditText 
    android:imeOptions="actionNext|actionDone" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer" /> 

,这里是从我的,关于相关活动的AndroidManifest.xml中剪断:

回答

1

你可以尝试设置了android:nextFocusDown的编辑linearlayout上方的文本。您只需在最后一个元素上使用actionNext和actionDone。

此外,数字已过时,使用的inputType = “号码” 代替。

+0

你的意思是它只是需要把actionNext和actionDone的一个最后的EditText元素?如果是这样,我在这里尝试,并没有将工作重心转移到下一个。实际上,问题并不在于焦点没有移动,而是软键盘没有正确地平移下来,与表单重叠。 – kaneda