2011-11-25 60 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