2

それぞれの ScrollView 内にいくつかの LinearLayouts が含まれており、それらは ViewFlipper に含まれています。奇妙なことに、一部のレイアウトでは、フォーカスを取得すると、上部以外の場所で自動的に開始されます。

では、何が原因でしょうか? それらを強制的に一番上から開始するために、 html に tabindex プロパティのようなものはありますか?

ありがとう

4

1 に答える 1

0

フォーカスが最上位のフィールドではなく他の場所に自動的に移動するという問題がある場合は、アクティビティライフサイクルの onStart() メソッドで、それぞれのフィールド ID を使用してこのコードを単純に記述する必要があります。私の場合、最初のフィールドは firstfield_et によって参照されます。 Activity.java ファイルの変数であり、.xml ファイルの etfirstfield によって既に参照されています

コードは次のとおりです。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText firstfield_et= (EditText) findViewById(R.id.etfirstfield);   
}

@Override
protected void onStart() {
    super.onStart();
    if(TextUtils.isEmpty(firstfield_et.getText().toString())){
        firstfield_et.requestFocus();
    }
}
于 2017-06-07T09:20:37.890 に答える