Этот вопрос задан раньше: Пользовательское название AlertDialog имеет черную рамку
Но на него не ответили удовлетворительно - и отсутствует какая-то информация.
Я пытаюсь создать пользовательский диалог в Android без заголовка и без кнопок внизу.
Однако в результате диалог имеет черные "границы" / "интервал" /что-то в верхней и нижней частях представления.
От Документация:
Диалог, созданный с базовым классом Dialog, должен иметь заголовок. если ты не вызывайте setTitle(), тогда пространство, используемое для заголовка, остается пустой, но все же видимый. Если вам вообще не нужен заголовок, тогда вы должен создать ваш пользовательский диалог, используя класс AlertDialog. Однако, потому что AlertDialog создается проще всего с помощью AlertDialog.Builder класса, у вас нет доступа к используемому методу setContentView (int) выше. Вместо этого вы должны использовать setView (View). Этот метод принимает вид объект, поэтому вам нужно раздуть макет root. Просмотреть объект из XML.
Итак, что я сделал:
Welcome.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();
}
}
welcomedialog.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 Suggestion
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();
}
}
Не работает для меня.