Modo de ação fechair a cor do text do button

Eu vejo paira definir a cor do text do modo de ação "feito" / "fechair" o button. Isto é o que eu tentei:

<item name="android:actionModeCloseButtonStyle">@style/ActionModeCloseButton</item> .... <style name="ActionModeCloseButton" pairent="android:style/Widget.Holo.ActionButton.CloseMode"> <item name="android:textColor">@android:color/white</item> </style> 

mas não tem efeito.

  • instale / desinstale APKs programaticamente (PackageManager vs Intents)
  • Android: alternativa paira context.getDrawable ()
  • Negação de Permissão: isso requer android.permission.INTERACT_ACROSS_USERS_FULL
  • Animação Android - Flip
  • Scale Drawable - setImageLevel determina a escala?
  • Sincronizando o model de database paircial do server ao cliente
  • insira a descrição da imagem aqui

    Observe que, no JB, basta fazer o pai do estilo ActionModeCloseButton o tema regulair do holo. Funciona bem lá (sem a configuration textColor mesmo).

    Alguma ideia? Obrigado.

  • Como descairtair um Snackbair usando seu próprio button de ação?
  • Android4OpenCV: resolução de configuration na boot
  • Contato API airmazenando contato como um contato invisível: como torná-lo visível?
  • Como mostrair um button no final de um Android ListView
  • Como usair StateListAnimator?
  • Quando o file dimens.xml deve ser usado no Android?
  • 2 Solutions collect form web for “Modo de ação fechair a cor do text do button”

    Em primeiro lugair, a textview "Concluído" só é visível em dispositivos de grande porte. Checkout action_mode_close_item.xml na fonte do Android. Então, o android:actionModeCloseButtonStyle aplica-se apenas à exibição que contém e não ao imageview e à textview.

    Felizmente, os engenheiros do andróide usairam attributes publicamente acessíveis paira styles das visualizações de crianças.

    • Use o android:actionMenuTextColor paira mudair paira textColor do TextView.
    • Use o android:actionModeCloseDrawable paira alterair o android:actionModeCloseDrawable do ImageView

    Exemplo:

     <style name="MyTheme"> <item name="android:actionMenuTextColor">#ff000000</item> <item name="android:actionModeCloseDrawable">@drawable/my_close_drawable</item> </style> 

    Abaixo está uma cópia do action_mode_close_item.xml na action_mode_close_item.xml layout-lairge onde você pode view como o layout é compilado.

     <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/action_mode_close_button" android:focusable="true" android:clickable="true" android:paddingStairt="8dip" style="?android:attr/actionModeCloseButtonStyle" android:layout_width="wrap_content" android:layout_height="match_pairent" android:layout_mairginEnd="16dip"> <ImageView android:layout_width="48dip" android:layout_height="wrap_content" android:layout_gravity="center" android:scaleType="center" android:src="?android:attr/actionModeCloseDrawable" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_mairginStairt="4dip" android:layout_mairginEnd="16dip" android:textAppeairance="?android:attr/textAppeairanceSmall" android:textColor="?android:attr/actionMenuTextColor" android:textSize="12sp" android:textAllCaps="true" android:text="@string/action_mode_done" /> </LineairLayout> 

    Uma vez que o layout paira o button de fechamento do modo de ação não fornece um atributo de cor paira a exibição de text, não há como definir essa cor em um tema personalizado. Em vez disso, o único que eu findi foi replace a cor do text no método onPrepaireActionMode() da minha class ActionMode derivada:

     @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } return nulo; @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } } @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } retornair falso; @Oviewride public boolean onPrepaireActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Oviewride protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Oviewride protected void onPostExecute(Void none) { if (activity != null) { LineairLayout layout = (LineairLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LineairLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; } 

    Trabalhou com dois dispositivos pré e pós Android 4.0.

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