Uyarı iletişim kutusunda başlık başlığının ayırıcı rengini değiştirmek veya değiştirmek istedim. Bu soruyu araştırıyorum ve bunun için çok fazla insan olduğunu düşünüyorum. Ancak hala doğru çözümü bulamıyorum. Bunu aşağıdaki değiştirmek istiyorum. Uyarı iletişim kutusu üstbilgisi renk değiştirici nasıl değiştirilir
cevap
Kaynak tarafından bakıldığında, bu rengin kodlanmış olduğu anlaşılıyor. Bunu bir hata olarak düşünürüm, stil sahibi imho olmalı.
Kolay bir geçici çözüm de olsa: setStyle(DialogFragment.STYLE_NO_TITLE, R.style.myStyle);
kullanın ve ilk öğenin başlığınız olduğu basit bir doğrusal düzen yazın. Aslında çok basit bir saldırı tarafından AlertDialog başlığının rengini değiştirebilir
altında setStyle'a ne uygulıyorsunuz? AlertDialogs için böyle bir yöntem yoktur (görebildiğim). Eğer bu işe yararsa, cevabınızı kabul etmekten mutluluk duyarım. – PeteH
DialogFragment'in onCreate uygulamasında kullanıyorum (ve parçalardan ziyade iletişim parçalarını kullanmanızı tavsiye ediyorum: http://stackoverflow.com/questions/13765127/dialogfragment-advantages-over-alertdialog) – Teovald
:
public static void brandAlertDialog(AlertDialog dialog) {
try {
Resources resources = dialog.getContext().getResources();
int color = resources.getColor(...); // your color here
int alertTitleId = resources.getIdentifier("alertTitle", "id", "android");
TextView alertTitle = (TextView) dialog.getWindow().getDecorView().findViewById(alertTitleId);
alertTitle.setTextColor(color); // change title text color
int titleDividerId = resources.getIdentifier("titleDivider", "id", "android");
View titleDivider = dialog.getWindow().getDecorView().findViewById(titleDividerId);
titleDivider.setBackgroundColor(color); // change divider color
} catch (Exception ex) {
ex.printStackTrace();
}
}
Bölücü rengi: -
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.dialog)
.setIcon(R.drawable.ic)
.setMessage(R.string.dialog_msg);
Dialog d = builder.show();
int dividerId = d.getContext().getResources().getIdentifier("android:id/titleDivider", null, null);
View divider = d.findViewById(dividerId);
divider.setBackgroundColor(getResources().getColor(R.color.my_color));
Buradaki anahtar, '.show()' nı ilk olarak çalıştırmak ve ardından bölücü Görünümü ve güncelleştirmeleri yapmak için iletişim kutusuna erişmek, vs. Bunu ilk başta özledim - iletişim kutusunu göstermeden önce renk güncellemesini yapmaya çalışmaktı, ve çalışmıyordu. Güzel özlü örnek - teşekkürler – gnB
QustomDialogBuilder qustomDialogBuilder = new QustomDialogBuilder(context).
setTitle("Set IP Address").
setTitleColor("#FF00FF").
setDividerColor("#FF00FF").
setMessage("You are now entering the 10th dimension.").
qustomDialogBuilder.show();
Eğer setDivider yöntemini denedi? uyarı diyaloglarında var mı? – Paschalis
bunu ayarlayabilirsiniz .. – Janmejoy
Eski android sürümler için kostüm iletişim oluşturdum ama daha yeni android sürümü için bu mavi bölücü rengini değiştirmek istiyorum. eski sürüm için tamamen özel iletişimimi oluşturuyorum. Ama daha yüksek versiyonlar için kullanmak istemiyorum. Yani sorun bu. Bunu değiştirmenin herhangi bir yolu. – nilkash