0

我正在使用 DialogFragment 显示一个对话框,该对话框的布局被定义为一个垂直的 LinearLayout,其中有一些 TextViews 和 EditTexts。此 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

你应该从你的 Xml 中删除它

  overScrollmode="never"
于 2013-09-21T12:40:10.803 回答
0

使用下面的代码行,你就可以在对话框中滚动了。您必须在 ScrollView 中有您的布局。

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