私の XML レイアウトには、特に 2 つのEditText
要素といくつかのボタンがあります。XML は次のようになります (ほとんどのものは削除され、関連する部分のみが残ります)
<RelativeLayout>
<RelativeLayout android:id="@+id/entry_id">
<Button
android:id="@+id/btn_select"
layout_alignParentRight="true" />
<EditText
android:id="@+id/txt_id"
android:layout_toLeftOf="@id/btn_select"
anddroid:nextFocusDown="@id/txt_extras" />
<Button
android:id="@+id/btn_quality"
android:layout_below="txt_id" />
</RelativeLayout>
<EditText
android:id="@+id/txt_extras"
android:layout_below="@id/entry_id" />
</RelativeLayout>
これにより、次のようなレイアウトが生成されます。
+-----------------------------------------------+
|+---------------------------------------------+|
|| ||
|| +----------------------+ +-------------+ ||
|| | First text field | | Button | ||
|| +----------------------+ +-------------+ ||
|| ||
|| +----------------+ ||
|| | Another button | ||
|| +----------------+ ||
|| ||
|+---------------------------------------------+|
| |
| +-------------------------------------------+ |
| | Second text field | |
| +-------------------------------------------+ |
+-----------------------------------------------+
これはレイアウト全体ではないことに注意してください。さらに多くの異なるビューがありますが、私はこれらのビューのみに関心があります。が使用される理由RelativeLayout
は、クライアントが望む方法でビューを実際にレイアウトできるようにするためです。
次に、2 番目のテキストを定義する前に、最初のテキストとボタンを含むブロックを定義して、2 番目のテキストがそのブロックの下にあるように指定できるようにする必要があります。ただし、nextFocusDown
2 番目のテキスト フィールドがまだ定義されていないため、属性の 2 番目のテキスト フィールドを参照しているため、最初のテキスト フィールドでエラーが発生します。これはcatch 22になります.eclipse/lint/whateverに、存在しないことを訴えているフィールドが実際には数行下にあることを理解させる方法はありますか? つまり、行ごとではなく、全体としてファイルを全体的に見るようにすることは可能ですか?
または、ソフト キーボードで「次へ」を押したときに、フォーカスを 2 番目のボタンではなく 2 番目のテキスト フィールドに移動するように指定する他の方法はありますか?