2012-12-04 24 views
7

画面からボタンを押して:アンドロイドカスタムダイアログは、私がこのようなレイアウトでカスタムダイアログを持つ

<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> 

私の問題はscrollviewがあるということであるscrollviewでも多くのテキストがある場合には、下のボタンがダイアログから押し出されます。私はアンドロイドを使用してボタンを含むRelativeLayoutをアンカーすることによってそれを防ぐことができました:layout_alignParentBottom = "true"しかし、スクロールビューにテキストが少なくても、私はそれを望んでいない。

は、どのように私はこのようなレイアウトを取得することができます:

[SOME TEXT] 
[Scrollable region] 
[Buttons] 
+0

それも持つ線形レイアウトコンテナを使用して、異なる画面サイズや向き –

+0

のような主要なレイアウトの高さを固定してくださいweight = 1属性の場合、ボタンはまだ押し下げられ、途中で切り取られます。ですから、少し上手いですが、完全な解決策ではありません... –

答えて

6

は別のレイアウトにボタンを入れて、ボタンレイアウトに体重をかける代わりにRelativeLayoutLinearLayoutをお試しください。

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" 
+0

にサイズ変更可能にする必要があるので、私はメインのレイアウトの高さを修正する必要はありません300dip –

+0

トップレイアウトを 'LinearLayout'にも変更します。次に、このようなものを持っています:更新私は答えに投稿しました... – Gix

+0

hm ...ダイアログはまだ画面を越えて伸び、ボタンを押して半分になるようにします。ボタンとテキストに余白があり、レイアウト計算に影響しますか? –

1

質問は私の場合に役立ちました。これは私がかなり長い間トレースを取得するようになったので、これが他の人を助けてくれることを望みます。

alertDialogBuilder.setMessage(null); 
+0

アラートダイアログではなく、カスタムダイアログについて質問されました。 – Pkmmte

関連する問題