0

Один из моих диалогов имеет не собственное название:Диалог пользовательских заголовок, чтобы соответствовать без пользовательского заголовка

NameDialog.java

public class NameDialog extends DialogFragment { 
    @Override 
    @NonNull 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 
     return builder.setTitle(R.string.name) 
       .setView(inflater.inflate(R.layout.name_dialog, null)) 
       .setPositiveButton(R.string.next, null) 
       .create(); 
    } 
} 

name_dialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 

    <EditText 
     android:id="@+id/name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:ems="10" 
     android:inputType="textPersonName" 
     android:textAppearance="?android:attr/textAppearanceLarge"/> 
</LinearLayout> 

Это то, на что это похоже: NameDialog

В одном из моих диалогов есть пользовательский заголовок с изображением броска. PlayersDialog.java

public class PlayersDialog extends DialogFragment { 
    @Override 
    @NonNull 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 
     return builder 
       .setCustomTitle(inflater.inflate(R.layout.players_title_dialog, null)) 
       .setView(inflater.inflate(R.layout.players_dialog, null)) 
       .setPositiveButton(R.string.start_game, null) 
       .create(); 
    } 
} 

players_dialog.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       tools:context=".PlayersDialog"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:textAppearance="?android:attr/textAppearanceLarge"/> 

    <ListView 
     android:id="@+id/players" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="false"/> 

</RelativeLayout> 

players_title_dialog.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="horizontal" 
       tools:context=".PlayersDialog"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/title" 
     android:text="@string/players" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_marginLeft="5dp"/> 

    <android.support.v7.app.MediaRouteButton 
     android:id="@+id/media_route_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_centerVertical="true" 
     android:mediaRouteTypes="user" 
     android:visibility="gone"/> 

</RelativeLayout> 

Это то, что он выглядит следующим образом: PlayersDialog

Я просто хочу, чтобы оба диалога имели последовательное форматирование.

+0

вас вам придется использовать один и тот же макет для обоих диалогов, если вы хотите, чтобы они были согласованными. –

+0

@KristyWelsh Это не проблема. Непоследовательные названия - проблема. – AlanRosenthal

+0

. В первом случае вы используете настройку названия по умолчанию, но с использованием настраиваемого заголовка во втором случае, так что он принимает разные настройки. –

ответ

0

В вашем players_title_dialog.xml файл заменить игрокам textView со следующим

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/title" 
     android:text="@string/players" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#3db6e3" 
     android:layout_marginLeft="10dp"/> 

И может быть размер шрифта может быть уменьшен на 1 dp и дополнения могут быть добавлены в 3px вам список

+0

Есть ли способ ссылаться на цвет и маржу, чтобы он не был жестко закодирован? – AlanRosenthal

+0

На самом деле, нет никаких ссылок, поскольку источник андроидов открыт для всех, любой может легко найти технические характеристики и повторно использовать его. Из источника Android вы также можете увидеть шрифт/марку и т. Д. По умолчанию alertDialog. то вы можете создать свой собственный пользовательский интерфейс и повторно использовать его. Здесь вы можете найти стандартную спецификацию AlertDialog: http://stackoverflow.com/questions/2422562/how-to-change-theme-for-alertdialog –

+0

Где вы находите значение «3db6e3»? – AlanRosenthal