2013-04-05 12 views
6

Chcę zmienić wszystkie toasty w mojej aplikacji, edytując themes.xml.Jak ustawić styl tosty jako motyw?

Używam <item name="buttonStyle">@style/MyButton</item> do zmiany moich przycisków, czy jest coś podobnego do Toastów, czy muszę stworzyć i używać klasy MyToast, która rozszerza wbudowaną Toast?

Odpowiedz

5

Można zmienić tło swojej Tosty z tym:

<style name="myTheme" parent="@android:styles/Theme.Holo"> 
    <item name="android:toastFrameBackground">@android:drawable/my_toast</item> 
</style> 
+0

dziękuję Ahmad, czy istnieje jakieś inne dostosowanie zamiast tła? po drugie, jest tam tabela dla wszystkich nazw przedmiotów, takich jak 'android: toastFrameBackground' – guness

+0

@bluebrain, nie możesz ustawić grawitacji itp. ze stylami (tak długo, jak to możliwe), musisz to zrobić programowo. Android jest open source, więc możesz znaleźć wszystko tutaj: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml – Ahmad

+2

Czy możesz zmienić tło? Jak wskazują inne wpisy SO, toastFrameBackgound nie jest publiczne. W interfejsie API 18 pojawia się błąd informujący, że nie znaleziono zasobu pasującego do tej nazwy. http://stackoverflow.com/questions/19215326/styles-toast-background-no-resource-found-that-matches-the-given-name – spaaarky21

-3

Spróbuj tego:

Toast toast=new Toast(this); 
    LayoutInflater inflater=this.getLayoutInflater(); 
    View toastView=inflater.inflate(R.layout.toast_layout, (ViewGroup)findViewById(R.id.toastView)); 
    TextView txtDate=(TextView)toastView.findViewById(R.id.txtDate); 
    txtDate.setText("toast appeared at "+Calendar.getInstance().getTime().toLocaleString()); 
    toast.setGravity(Gravity.CENTER, 0, 0); 
    toast.setView(toastView); 
    toast.show(); 
+7

nie widzę nic związanego z tematem „” (co jest związane z globalną, nie jeden toast), czy mógłbyś wyjaśnić odpowiedź? – guness

Powiązane problemy