0

ダイアログのビューコンテンツにAndroidによって追加された2pxの灰色の境界線を削除する方法が必要です。このサイトでOKとマークされたソリューションのほとんどを試しました。望ましい最終結果は最後の画像に表示されます(Androidによって追加されたUI要素なしで、私のビューだけを表示するダイアログ)

これは現在のコードです:

AlertDialog.Builder builder = new Builder(this);
builder.setView(dialogContent); //a view inflated from xml
... 
chooseActionDialog = builder.create();
...
chooseActionDialog.setView(dialogContent, 0, 0, 0, 0); //this removed the padding between grey border & actual content.. this is why i set view twice
chooseActionDialog.show();
...
Drawable d = new ColorDrawable(Color.TRANSPARENT);    
chooseActionDialog.getWindow().setBackgroundDrawable(d);  //this seems to change color of padding area (between grey border & actual content)

注:2つのパラメーター(context、themeId)を持つBuilderコンストラクターは、期待どおりに機能します(まだ境界線があり、ダイアログが見苦しくなります)

ここに画像の説明を入力してください

4

1 に答える 1

3

以下のような値フォルダーのstyle.xmlに独自のスタイルを作成します

<style name="Theme.Trans" parent="android:Theme.Translucent">
   <item name="android:windowFrame">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowTitleStyle">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:background">@android:color/transparent</item>
</style>

このスタイルをダイアログに適用します

final Dialog dialog = new Dialog(UrActivity.this, R.style.Theme_Trans);
于 2013-03-20T07:58:35.867 に答える