我遇到了幾個並排居住的EditText組件的問題(它們是RelativeLayout的子項)。EditText焦點問題
<EditText
android:id="@+id/num1"
android:layout_width="40dp"
android:layout_height="40dp"
android:maxLength="1"
android:inputType="number"
android:textColor="@color/textColor"
android:gravity="center"
android:focusableInTouchMode="true"
android:focusable="true"
/>
<EditText
android:id="@+id/num2"
android:layout_width="40dp"
android:layout_height="40dp"
android:maxLength="1"
android:layout_toEndOf="@id/num1"
android:layout_marginStart="10dp"
android:inputType="number"
android:textColor="@color/textColor"
android:gravity="center"
android:focusableInTouchMode="true"
android:focusable="true"
/>
<EditText
android:id="@+id/num3"
android:layout_width="40dp"
android:layout_height="40dp"
android:maxLength="1"
android:layout_toEndOf="@id/num2"
android:layout_marginStart="10dp"
android:inputType="number"
android:textColor="@color/textColor"
android:gravity="center"
android:focusableInTouchMode="true"
android:focusable="true"
/>
此外,以下是嘗試從NUM1組件焦點更改NUM2組件相關的代碼,但實際上發生的事情是重點轉到從NUM1到NUM3:
final EditText etLastNumber1 = (EditText) findViewById(R.id.num1);
final EditText etLastNumber2 = (EditText) findViewById(R.id.num2);
etLastNumber1.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (Misc.IsKeyCodeNumber(keyCode)) {
etLastNumber1.clearFocus();
etLastNumber2.requestFocus();
return false;
}
return true;
}
});
我已經嘗試了相同代碼的不同變體,包括不使用clearFocus和/或始終返回true。另外,父佈局使用descendantFocusability = beforeDescendants和focusableInTouchMode = true。
如何解決這個問題?
嘗試安卓@SathishKumarJ我想你的建議descendantFocusability =「blocksDescendants」你的相對佈局 –
什麼...發生的是,沒有組件獲取焦點 – lionheart