2

Dialogスタイルの中にButtonがあります。ここで アンドロイド:layout_alignParentBottom = "true"はダイアログアクティビティの高さをwrap_contentからmatch_parentに変更します

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Button" /> 

</RelativeLayout> 

android:windowFullscreenがfalseであっても、フルスクリーンなど Dialog

<style name="Modal" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowFullscreen">false</item> 
     <item name="android:windowContentOverlay">@null</item> 
    </style> 

このActivityショーとしてそれを示すようになり、私のActivityのスタイルである:ここに は私Activityのxmlファイルであります! Activity xmlファイルからandroid:layout_alignParentBottom="true"を削除すると、heightActivityに変更され、wrap_contentに変更されても問題ありません。 Buttonの属性を削除せずにこの問題を解決する方法を知りたい。

ここでは、android:layout_alignParentBottom="true"

enter image description here

とし、アウトandroid:layout_alignParentBottom="true"で活動

を示す結果を見ることができます。

enter image description here

+1

正確な問題を詳しく説明できますか? –

+0

ダイアログスタイルのアクティビティが必要です。 OKです。スクリーンショットで見られるように、ダイアログスタイルでActivityを正常に開始できます。私の問題は、このアクティビティの高さですwrap_contentの代わりにmatch_parentです!私はアンドロイド:layout_alignParentBottomを "true"に設定して2番目のスクリーンショットを作成します。別の状況ではこのアクティビティをダイアログスタイルなしで開始したいので、この属性を削除するとButtonが画面の下部に表示されないためです。十分ですか? @ M.WaqasPervez – Nava

答えて

1

あなたはid属性を設定し、アンドロイドを削除する必要があり、あなたのxmlファイル内

RelativeLayout relativeLayout = view.findViewById(R.id.relative_layout); 
    Button button = relativeLayout.findViewById(R.id.button); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, view.getId()); 
    button.setLayoutParams(params); 

以下のコードを使用してプログラム属性

android:layout_alignParentBottom="true" 

を設定することによって、これを達成することができます:layout_alignParentBottom = "true"

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:id="@+id/relative_layout" 
android:layout_height="match_parent"> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/button" 
    android:text="Button" /> 

</RelativeLayout> 
+0

あなたは正しいです。これはこの問題に対処するより良い方法だと思われます!しかし、私は 'RelativeLayout'が何らかの形でこの問題自体を扱うことを望んだ。 – Nava

+0

私はそれを理解しようとし、あなたに知らせます。 –

0

私は私の場合、同じよう

mDialog.show(); 
Window window = mDialog.getWindow(); 
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 

...あなたは、ダイアログを作成するときに、このランタイムを追加しようとする... それは@Nava

+0

私が言ったように、ダイアログスタイルのアクティビティがあります。あなたのコードを、私のActivityクラスのsetContentView()メソッドの後でテストしました。残念ながら、これは私にとってはうまくいきませんでした! – Nava

1

なぜドン」助けるかもしれません代わりにFrameLayoutを使用していますか?

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:text="Button" /> 

</FrameLayout> 
+0

あなたの指導のおかげで。 私は複雑なレイアウトをしており、レイアウトルートを変更するのではなく、RelativeLayoutでこの問題を解決したいと考えています。 – Nava