0

DialogFragment を使用してダイアログを表示しています。このダイアログのレイアウトは、いくつかの TextView と EditText がある垂直 LinearLayout として定義されています。この LinearLayout は Scrollview 内に配置されます。レイアウトは次のようなものです (申し訳ありませんが、会社のポリシーにより正確なコードを共有することはできません)。

<ScrollView
    layout_width="700dp"
    layout_width="500dp"
    overScrollmode="never">
    <LinearLayout
    orientation="vertical">
    <LinearLayout
        orientation="horizontal">
        <TextView/>
        <EditText
           inputType="text"/>
    </LinearLayout>
    <LinearLayout
        orientation="horizontal">
        <TextView/>
        <EditText
           inputType="text"/>
    </LinearLayout>
    <LinearLayout
        orientation="horizontal">
        <TextView/>
        <EditText
           inputType="number"/>
    </LinearLayout>
    <LinearLayout
        orientation="horizontal">
        <TextView/>
        <EditText
           id="scrollupStopsHere"
           inputType="text"/>
    </LinearLayout>
    <LinearLayout
        orientation="horizontal">
        <TextView/>
        <EditText
           inputType="text"/>
    </LinearLayout>
    <LinearLayout
        orientation="horizontal">
        <TextView/>
        <EditText
           inputType="text"/>
    </LinearLayout>
   </LinearLayout>
</ScrollView>

キーボードの次のボタンを使用して最後の EditText に移動し、上にスクロールしようとすると、id: "scrollupStopsHere" の edittext までスクロールし、一番上のビューまでスクロールしません。また、キーボードが開いていないときは、レイアウト全体を正しくスクロールできます。

4

2 に答える 2

0

以下のコード行を使用すると、ダイアログですべてスクロールするように設定されます。ScrollView 内にレイアウトが必要です。

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2015-12-19T13:02:44.640 に答える