この質問は何度も聞かれるようですが、20 を超えるさまざまなアイデアを試した後でも、まだ問題があります。
(上から)7つのスピナーとそれに続くいくつかの編集テキストで構成される膨張したダイアログがあります。スピナーと編集テキストは別々の線形レイアウトにあります。
ダイアログが作成されると、フォーカスが最初の編集テキストに移動し、これがダイアログの途中にあるため、最初のスピナーがスクロールされて表示されなくなります。
私が必要とするのは、最初のスピナーをフォーカスするか、スクロールを一番上にする方法です。
私が何をした?
さて、設定しました:dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
ソフトキーボードが表示されないようにします(これは機能します)
manufacturer = (Spinner) entryView.findViewById(R.id.myyarns_add_dialog_manufacturer_spinner);
manufacturer.setFocusable(true);
manufacturer.setFocusableInTouchMode(true);
manufacturer.requestFocus();
これは onPrepareDialog でも onCreateDialog でも効果がありません
それでは設定してみました
weight = (EditText) entryView.findViewById(R.id.myyarns_add_dialog_weight);
weight.clearFocus();
ここで、weight はフォーカスを取得する最初の edittext の ID です - それでも weight はフォーカスを取得します
次に、ダイアログビューを一番上までスクロールしようとしましたが、何もしません
ScrollView scroller = (ScrollView) entryView.findViewById(R.id.myyarns_scroll);
scroller.scrollTo(0, 0);
他にできることはありますか?