android custom dialog with scrollview pushes buttons off the screen

I have a custom dialog with a layout like this:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/mylayout">
   <LinearLayout
       android:id="@+id/title"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">
       <TextView ... />
       <TextView .../>
    </LinearLayout>
    <ScrollView
       android:id="@+id/scrollView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/title">
       <LinearLayout ...>
           <TextView ...
              android:text="lots of text........" />
           <TextView .../>
       </LinearLayout>
     </ScrollView
  <RelativeLayout ...
     android:layout_below="@+id/scrollView">
     <Button ...>
     <Button ...>
  </RelativeLayout>
</RelativeLayout>

My problem is that the scrollview is that when there is too much text in the scrollview, the buttons below are pushed down out of the dialog. I've been able to prevent it by anchoring the RelativeLayout that contains the buttons to the bottom using android:layout_alignParentBottom="true", but I that stretches the entire dialog to the bottom of the screen when there is less text in the scrollview and I don't want that.

How can I get a layout like this:

[SOME TEXT]
[Scrollable region]
[Buttons]

尝试使用LinearLayout而不是RelativeLayout将按钮放置在单独的布局中,并在按钮布局上加上重量。

LinearLayout - top level start, android:layout_weight="0"
LinearLayout with TextViews embeded, android:layout_weight="1"
LinearLayout with ScrollView embeded, android:layout_weight="1"
LinearLayout with Buttons embeded, android:layout_weight="1"
LinearLayout - top level finish, android:layout_weight="0"

Even though the question is kind of old here is what helped in my case. Hope this may help others as it took me quite a while to down trace.

alertDialogBuilder.setMessage(null);
链接地址: http://www.djcxy.com/p/93174.html

上一篇: RelativeLayout alignParentBottom与android冲突

下一篇: 带有滚动视图的android自定义对话框将按钮从屏幕上移开