この質問は以前に尋ねられました: AlertDialog カスタム タイトルには黒い境界線があります
しかし、満足のいく回答が得られず、一部の情報が欠落しています。
タイトルがなく、下部にボタンがないカスタム ダイアログを Android で作成しようとしています。
ただし、結果のダイアログには、ビューの上部と下部に沿って黒い「境界線」/「間隔」/何かがあります。
ドキュメントから:
基本 Dialog クラスで作成されたダイアログには、タイトルが必要です。setTitle() を呼び出さない場合、タイトルに使用されるスペースは空のままですが、表示されたままになります。タイトルがまったく必要ない場合は、AlertDialog クラスを使用してカスタム ダイアログを作成する必要があります。ただし、AlertDialog は AlertDialog.Builder クラスで最も簡単に作成できるため、上記で使用した setContentView(int) メソッドにはアクセスできません。代わりに、setView(View) を使用する必要があります。このメソッドは View オブジェクトを受け入れるため、XML からレイアウトのルート View オブジェクトをインフレートする必要があります。
だから、それは私がしたことです:
ようこそ.java
public class Welcome extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.welcomedialog, (ViewGroup)findViewById(R.id.layout_root));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
builder.create().show();
}
}
ようこそダイアログ.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/texturebg"
android:id="@+id/layout_root"
android:orientation="vertical"
android:padding="40px">
...
</LinearLayout>
注:どこかで見つけた提案に従ってではなくFrameLayout
、ルートとして使用しようとしましたが、それは役に立ちませんでした。ViewGroup
LinearLayout
結果
setBackgroundDrawable 提案
public class Welcome extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.welcomedialog, (ViewGroup)findViewById(R.id.layout_root));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
AlertDialog dialog = builder.create();
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialog.show();
}
}
私にはうまくいきませんでした。