カスタム DialogFragment フラッシュを画面左に、wrap_content 幅で表示しようとしています。私はほとんどそこにいますが、完全ではありません。
ダイアログの右側がコンテンツの幅を超えて拡張されていることに注意してください。2 つを区別するために、メイン コンテンツ エリアの背面に赤い色を追加しました。これにより、メイン コンテンツ エリアは実際には、私が到達できない最小幅を持つ別のレイヤーにあると考えるようになります。DialogFragment の onResume() で、呼び出すと...
Resources r = getActivity().getResources();
int pixels = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 72, r.getDisplayMetrics());
LayoutParams params = getDialog().getWindow().getAttributes();
params.width = pixels;
params.x = 0;
getDialog().getWindow().setAttributes(params);
...これにより、幅が適切なサイズに調整されますが、ピクセルの違いにより、これがすべてのデバイスで正しくなるとは限りません。表示メトリックに基づいて 72 を変換していることに注意してください。ただし、提供した最小のアイコン バージョンは drawable-mdip フォルダーで 48x48px だったため、72 が適切な幅である理由がわかりませんでした。72x72px は drawable-hdip フォルダーにあります。これは、使用しているデバイスに固有のものであると想定しています...したがって、他のデバイスでは、表示メトリックに応じて、この値を 48、96、144 などに設定する必要がある場合があります。
私の質問は、このダイアログの右側が拡張されているのはなぜですか? プログラムで静的な値 (つまり 72) だけウィンドウを縮小せずに、どうすればそれを取り除くことができますか?
... カスタム ダイアログ xml は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip"
android:background="@color/red"
android:orientation="vertical" >
<ImageButton
android:id="@+id/sharing_dialog_button_facebook"
android:contentDescription="@string/facebook_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/transparent"
android:src="@drawable/facebook_icon"/>
<ImageButton
android:id="@+id/sharing_dialog_button_twitter"
android:contentDescription="@string/twitter_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center"
android:background="@color/transparent"
android:src="@drawable/twitter_icon"/>
<ImageButton
android:id="@+id/sharing_dialog_button_tumblr"
android:contentDescription="@string/tumblr_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center"
android:background="@color/transparent"
android:src="@drawable/tumblr_icon"/>
<ImageButton
android:id="@+id/sharing_dialog_button_foursquare"
android:contentDescription="@string/foursquare_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center"
android:background="@color/transparent"
android:src="@drawable/foursquare_icon"/>
<ImageButton
android:id="@+id/sharing_dialog_button_email"
android:contentDescription="@string/email_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center"
android:background="@color/transparent"
android:src="@drawable/mail_icon"/>
</LinearLayout>