2012-03-15 12 views
5

Utworzyłem niestandardowy motyw dla okien dialogowych w mojej aplikacji na Androida i planowałem zastąpić układ używany w tytule okna dialogowego. Widziałem, że w standardowym Androidzie Theme jest ten atrybut, który wygląda jak ten, który modyfikujesz.Zastępowanie układu tytułu okna w Androidzie

<item name="dialogTitleDecorLayout">@layout/dialog_title</item> 

Ale gdy próbuję zastąpić go w moim Theme

<style name="Theme.Dialog.MyDialog" parent="android:Theme.Dialog"> 
    <item name="android:windowBackground">@android:color/black</item> 
    <item name="android:dialogTitleDecorLayout">@layout/my_dialog_title</item> 
</style> 

widzę następujący błąd:

No resource found that matches the given name: attr 'android:dialogTitleDecorLayout'

Dlaczego nie mógł go zmienić i jak mogę wiedzieć, które atrybuty można zmienić, a które nie?

+0

można wyświetlić pełną plik XML dla stylu? Czy to możliwe, że brakuje ci schematu XML dla Androida? – Genry

Odpowiedz

1

Nie można zastąpić tego elementu w ten sposób. Musisz dostosować okno dialogowe z wymaganym układem, a następnie w układzie musisz zastosować motyw tutaj, aby spełnić twoje wymagania.

dialog_title.xml 

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/text" 
    android:text="@string/tell_a_friend" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="8dip" 
    android:paddingTop="12dip" 
    android:paddingBottom="12dip" 
    style="@style/bigTextWhite" /> 

</LinearLayout> 

// jest to metoda, w której pojawia się Twój dialogowe w zdarzeniu onclick przycisku

public void onClickHelp(View v) { 
    final Dialog duDialog = new Dialog(this); 
    duDialog.setContentView(R.layout.data_usage); 
    duDialog.getWindow().setBackgroundDrawableResource(R.color.title_text); 

    duDialog.setTitle("Data Usage"); // I would like to set the color and add button here 
    ListView data = (ListView) duDialog.findViewById(R.id.DataUsage); 
    duCursor = Data.getAll(db); 
    startManagingCursor(duCursor); 
    duAdapter = new DataAdapter(duCursor); 
    data.setAdapter(duAdapter); 
    duDialog.show(); 

}