Cześć,
Mam problem z AlertDialogiem na Androidzie - nie styluje mi go odpowiednio to raz (biały dialog), a także jest fullscreen, gdzie wcale nie chce tego osiągnąć (nigdzie tego nie ustawiam). Może ktoś kojarzy o co może chodzić? Rozwiązanie wzięte z oficjalnej dokumentacji:
styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/backgroundLight</item>
<item name="colorPrimaryDark">@color/backgroundDark</item>
<item name="colorAccent">@color/backgroundDarkest</item>
</style>
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!-- Used for the buttons -->
<item name="colorAccent">#FFC107</item>
<!-- Used for the title and text -->
<item name="android:textColorPrimary">#FFFFFF</item>
<!-- Used for the background -->
<item name="android:background">#4CAF50</item>
</style>
</resources>
Wywołanie z Activity:
public void showFireDialog() {
DialogFragment dialog = new FireMissilesDialogFragment();
dialog.show(getFragmentManager(), "FireDialog");
}
Sama klasa dialogowa:
public class FireMissilesDialogFragment extends DialogFragment {
public interface NoticeDialogListener {
void onDialogPositiveClick(DialogFragment dialog);
void onDialogNegativeClick(DialogFragment dialog);
}
NoticeDialogListener mListener;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme);
mListener = (NoticeDialogListener) getActivity();
builder.setMessage(R.string.cancel)
.setPositiveButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogPositiveClick(FireMissilesDialogFragment.this);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Log.i("CLICK", "Cancel");
mListener.onDialogNegativeClick(FireMissilesDialogFragment.this);
}
});
return builder.create();
}
}
Kiedy nie dodam: R.style.AppTheme to dialog jest mały, ale stylowania dalej brak.