Android アプリケーションを構築していますが、ダイアログ フラグメントがあります。ダイアログ フラグメントには幅が設定されています。ただし、画面サイズが異なるデバイスでアプリを実行すると、ダイアログ フラグメントが適切に中央に配置されないという問題があります。
当初、私が持っていたものは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="500dp"
android:layout_height="wrap_content">
<-- code goes here -->
</RelativeLayout>
ご覧のとおり、幅が定義された relativeLayout があります。相対レイアウトでは使用できないことがわかっているのでlayout_weight
、親の相対レイアウトを次のように線形レイアウトでラップしました。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:weightSum="1">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</RelativeLayout>
</LinearLayout>
ただし、画面サイズが小さいデバイスでアプリケーションを実行すると、ダイアログの断片が切り取られるため、それは機能しません。
ダイアログフラグメントの幅を画面サイズのパーセンテージとして設定するにはどうすればよいですか? これはまったく可能ですか、それともプログラムで設定する必要がありますか?