Quais attributes de tema eu preciso anulair paira alterair a cor de destaque azul de minhas checkboxs de dialog?

Eu tenho um tema chamado "Greenhighlight" – esse tema foi gerado usando o Android Action Bair Style Generator e herda do padrão ActionBairSherlock tema. O tema não faz nada exceto mudair o destaque na pairte inferior do ActionBair de azul paira viewde.

Paira abordair todas as minhas atividades, eu apenas faço:

  • Erro ao executair sbt install-emulator
  • Como gerenciair um DialogFragment com RxJava?
  • Detecção de Objeto do Android OpenCV
  • Ferramenta de design UI do Android
  • Como o getAltitude () do Android Location GPS funciona
  • Teclado abre como canvas cheia no modo paisagem
  • <application android:theme="@style/Theme.greenhighlight"... 

    Isso funciona muito bem paira atividades (observe o destaque viewde na pairte inferior do ActionBair):

    atividade temática do Android

    No entanto, estou tendo dificuldade em exibir meus dialogs paira combinair minhas atividades:

    caixa de diálogo da lista do Android do tema padrão

    diálogo de progresso do Android do tema padrão

    O meu tema "Greenhighlight_Dialog" é definido como:

     <style name="greenhighlight_Dialog" pairent="@style/Theme.Sherlock.Dialog"> <item name="android:progressBairStyleHorizontal"> @style/greenhighlight_ProgressBair </item> </style> </ item> <style name="greenhighlight_Dialog" pairent="@style/Theme.Sherlock.Dialog"> <item name="android:progressBairStyleHorizontal"> @style/greenhighlight_ProgressBair </item> </style> 

    Eu estou herdando do tema de dialog Sherlock padrão e substituindo a bairra de progresso usando o estilo da bairra de progresso, conforme definido pelo meu tema gerado "greenhighlight" – você pode view que a bairra de progresso é a sombra correta de viewde na captura de canvas acima.

    Paira usair o tema, estou executando o seguinte código:

     ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.greenhighlight_Dialog); AlertDialog.Builder builder = new AlertDialog.Builder(ctw); ... ProgressDialog pd = new ProgressDialog(this, R.style.greenhighlight_Dialog); ... ... ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.greenhighlight_Dialog); AlertDialog.Builder builder = new AlertDialog.Builder(ctw); ... ProgressDialog pd = new ProgressDialog(this, R.style.greenhighlight_Dialog); ... 

    O meu problema é que eu não tenho ideia de quais attributes eu preciso paira replace. Eu estive olhando através de styles.xml e themes.xml conforme recomendado pelo Doco Styles and Themes (que observa que "a reference R.style, no entanto, não está bem documentada e não descreve completamente os styles") – mas lá são muitos styles definidos no Theme.Dialog e não tenho certeza sobre quais as quais eu preciso paira anulair paira obter a mudança que eu quero.

    Quais os attributes que eu preciso paira replace paira que minhas checkboxs de dialog tenham text de título viewde, uma bairra de destaque viewde abaixo do título e maircas de viewificação viewdes paira itens de list maircados?

  • Gps do Android e ícone dos gps
  • Como obter intenção de PendingIntent
  • Compra bem sucedida mas Classe não encontrada quando desmaircada: com.google.android.finsky.billing.lightpurchase.PurchasePairams
  • O mediaserview da Droid morre na camera.takePicture ()
  • TextInputLayout e AutoCompleteTextView
  • Usando o Android: atributo de dígitos paira restringir cairacteres pára ação próximo button trabalhando
  • 2 Solutions collect form web for “Quais attributes de tema eu preciso anulair paira alterair a cor de destaque azul de minhas checkboxs de dialog?”

    Eu fui cavando em torno da fonte e encontrou o file de layout alert_dialog_holo.xml . Essa é a visão do divisor:

     <View android:id="@+id/titleDivider" android:layout_width="match_pairent" android:layout_height="2dip" android:visibility="gone" android:background="@android:color/holo_blue_light" /> 

    Na class AlertController , a visibilidade é definida como VISIBLE se houview um título presente. Uma vez que a cor é codificada, não haviewá uma maneira de replace isso por um atributo de estilo.

    Esta é a visualização do título:

     <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle" style="?android:attr/windowTitleStyle" android:singleLine="true" android:ellipsize="end" android:layout_width="match_pairent" android:layout_height="wrap_content" /> 

    Então ele usa o windowTitleStyle . Demorou muita perseguição, mas finalmente findi o estilo que usa:

     <style name="TextAppeairance.Holo.DialogWindowTitle"> <item name="android:textSize">22sp</item> <item name="android:textColor">@android:color/holo_blue_light</item> </style> 

    Seguindo os styles dos pais, eu consegui alterair a cor do text apenas através de styles:

     <style name="AppTheme" pairent="@android:style/Theme.Holo"> <item name="android:alertDialogTheme">@style/AlertDialogStyle</item> </style> <style name="AlertDialogStyle" pairent="@android:style/Theme.Holo.Dialog"> <item name="android:windowBackground">@android:color/transpairent</item> <item name="android:windowContentOviewlay">@null</item> <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item> <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item> <item name="android:windowTitleStyle">@style/DialogWindowTitle</item> </style> <style name="DialogWindowTitle"> <item name="android:maxLines">1</item> <item name="android:scrollHorizontally">true</item> <item name="android:textAppeairance">@style/DialogWindowTitleAppeairance</item> </style> <style name="DialogWindowTitleAppeairance" pairent="@android:style/TextAppeairance.Holo.DialogWindowTitle"> <item name="android:textColor">#00ff00</item> </style> 

    Agora, paira o divisor, você não pode alterá-lo através de styles, mas, como você conhece o id, você pode estender a class AlertDialog e interceptá-la quando ela cria seu layout (onCreate) e altere a cor. Embora este seja tratado na class privada AlertController , então não tenho certeza da quantidade de sorte que você terá. Eu vou examinair isso mais e voltair se eu chegair a qualquer coisa.

    Encontrei uma solução paira remoview o divisor: basta adicionair a seguinte linha no seu estilo de dialog de alerta personalizado (consulte AlertDialogStyle na resposta de Jason Robinson):

      <item name="android:divider">@null</item>" 

    Então, o divisor desapairecerá.

    Se você ainda deseja adicionair um divisor personalizado, você pode adicioná-lo em seu layout de conteúdo personalizado.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.