Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cambiar la barra de acción

¿Cómo puedo cambiar el color de texto de la pista de búsqueda de barra de acción?

Esta pregunta explica cómo obtener el EditText cuando se utiliza ABS: Android ActionBar Personalizar Buscar Ver

  • El valor por defecto de ListPreference no aparece
  • ¿Cómo puede detectar Google una solicitud desde un WebView?
  • Necesita utilizar un tema Theme.AppCompat (o descendente) con esta actividad
  • Tipo de contenido de Android set HttpPost
  • Android - ¿Cuándo registrar / cancelar la inscripción de los receptores de difusión creados en una actividad?
  • Iconos en un diálogo de lista
  • ¿Hay un android.R.id que podría utilizar para obtener una referencia a la EditText para que pueda cambiar el color pista? ¿O hay alguna otra manera de cambiar el color?

    Barra de acción búsqueda ver sugerencia texto

  • Android: mkdirs () / mkdir () en el almacenamiento externo devuelve false
  • Android: Location.distancePara no funcionar correctamente?
  • ¿Cuál es el tamaño de ActionBar en píxeles?
  • Cómo emular la ubicación GPS en el emulador de Android?
  • Uso del contexto de la aplicación en todas partes?
  • Subir el número dinámico de archivos con okHttp3
  • 17 Solutions collect form web for “Cambiar la barra de acción”

    Android: actionBarWidgetTheme de su tema principal debe apuntar a un estilo que tiene un androide: textColorHint en él. Que permite cambiar el color del texto de sugerencia de la vista de búsqueda.

     searchView.setQueryHint(Html.fromHtml("<font color = #ffffff>" + getResources().getString(R.string.hintSearchMess) + "</font>")); 
     SearchView searchView= (SearchView) findViewById(R.id.searchView1); int id = searchView.getContext() .getResources() .getIdentifier("android:id/search_src_text", null, null); TextView textView = (TextView) searchView.findViewById(id); textView.setTextColor(Color.WHITE); 

    Resolví añadir esta propiedad al tema principal:

     <style name="AppTheme" parent="AppBaseTheme"> ..... ..... <item name="android:actionBarWidgetTheme">@style/MyActionBarWidgetTheme</item> </style> 

    Y luego agregue la propiedad que quiero cambiar en este caso el color de la sugerencia.

     <style name="MyActionBarWidgetTheme" parent="@android:style/Theme.Holo"> ..... ..... <item name="android:textColorHint">@color/blanco_60</item> </style> 

    Espero que ayude: D

    Esto funcionó para mí, espero que ayuda

     ((EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)).setHintTextColor(getResources().getColor(R.color.white)); 

    También ver esto

    Un objeto LinearLayout extiende desde LinearLayout , por lo que contiene otras vistas. El truco consiste en encontrar la vista que contiene el texto de la sugerencia y cambiar el color mediante programación. Al recorrer la jerarquía de vistas, puede encontrar el widget que contiene el texto de la pista:

     // get your SearchView with its id SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); // traverse the view to the widget containing the hint text LinearLayout ll = (LinearLayout)searchView.getChildAt(0); LinearLayout ll2 = (LinearLayout)ll.getChildAt(2); LinearLayout ll3 = (LinearLayout)ll2.getChildAt(1); SearchView.SearchAutoComplete autoComplete = (SearchView.SearchAutoComplete)ll3.getChildAt(0); // set the hint text color autoComplete.setHintTextColor(getResources().getColor(Color.WHITE)); 

    Este método funciona con cualquier tema. Además, puede cambiar la apariencia de otros widgets en la jerarquía de EditText , como el EditText contiene la consulta de búsqueda.

    Aquí está específicamente cómo usted aplica el estilo según lo indicado en arriba. La respuesta correcta es sobrecargar el estilo de widget de barra de acción con su propio estilo personalizado. Para la luz holo con la barra de acción oscura, ponga esto en su propio archivo de estilos como res/values/styles_mytheme.xml :

     <style name="Theme.MyTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarWidgetTheme">@style/Theme.MyTheme.Widget</item> <!-- your other custom styles --> </style> <style name="Theme.MyTheme.Widget" parent="@android:style/Theme.Holo"> <item name="android:textColorHint">@android:color/white</item> <!-- your other custom widget styles --> </style> 

    Asegúrese de que su aplicación está utilizando tema tema personalizado como se describe en la descripción de enlace aquí

    Simplemente obtenga el identificador textView del widget de búsqueda y utilice el método setTextColor() para cambiar el color del texto de búsqueda y setHintTextColor() para cambiar el color de texto de las sugerencias de búsqueda.

     // Get textview id of search widget int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null); TextView textView = (TextView) searchView.findViewById(id); // Set search text color textView.setTextColor(Color.WHITE); // Set search hints color textView.setHintTextColor(Color.GRAY); 

    Mira a esta clase, puede ayudarte a resolver tu problema

     import android.R.color; import android.content.Context; import android.graphics.Typeface; import android.widget.ImageView; import com.actionbarsherlock.widget.SearchView; import com.actionbarsherlock.widget.SearchView.SearchAutoComplete; public class MySearchView { public static SearchView getSearchView(Context context, String strHint) { SearchView searchView = new SearchView(context); searchView.setQueryHint(strHint); searchView.setFocusable(true); searchView.setFocusableInTouchMode(true); searchView.requestFocus(); searchView.requestFocusFromTouch(); ImageView searchBtn = (ImageView) searchView.findViewById(R.id.abs__search_button); searchBtn.setImageResource(R.drawable.ic_menu_search); // ImageView searchBtnClose = (ImageView) searchView.findViewById(R.id.abs__search_close_btn); // searchBtnClose.setImageResource(R.drawable.ic_cancel_search_bar); SearchAutoComplete searchText = (SearchAutoComplete) searchView.findViewById(R.id.abs__search_src_text); setFont(context, searchText); searchText.setTextColor(context.getResources().getColor(color.white)); searchText.setHintTextColor(context.getResources().getColor(color.white)); return searchView; } private static void setFont(Context _context, SearchAutoComplete searchText) { Typeface tf = null; Typeface currentType = searchText.getTypeface(); if (currentType == null) { tf = MyApplication.fontNormal; } else { int currentStyle = currentType.getStyle(); if (currentStyle == Typeface.BOLD) { tf = MyApplication.fontBold; } else if (currentStyle == Typeface.BOLD_ITALIC) { tf = MyApplication.fontBoldItalic; } else if (currentStyle == Typeface.ITALIC) { tf = MyApplication.fontItalic; } else { tf = MyApplication.fontNormal; } } searchText.setTypeface(tf); } public static SearchView getSearchView(Context context, int strHintRes) { return getSearchView(context, context.getString(strHintRes)); } } 
     int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null); TextView textView = (TextView) searchView.findViewById(id); textView.setTextColor(Color.WHITE); textView.setHintTextColor(Color.WHITE); 

    También puede establecer el SearchView en su menuItem manualmente y por lo tanto tener control total sobre la vista.

    Al usar esto, puede cambiar el xml de Searchable

    1. Color de sugerencia de texto de búsqueda
    2. Buscar texto
    3. Buscar cerrar icono
    4. Icono de sugerencia de búsqueda
    5. Buscar placa
     int searchHintBtnId = searchView.getContext().getResources() .getIdentifier("android:id/search_mag_icon", null, null); int hintTextId = searchView.getContext() .getResources() .getIdentifier("android:id/search_src_text", null, null); int closeBtnId = searchView.getContext() .getResources() .getIdentifier("android:id/search_close_btn", null, null); // Set the search plate color to white int searchPlateId = getResources().getIdentifier("android:id/search_plate", null, null); View view = searchView.findViewById(searchPlateId); view.setBackgroundResource(R.drawable.search_plate); ImageView closeIcon = (ImageView) searchView.findViewById(closeBtnId); closeIcon.setImageResource(R.drawable.close); ImageView searchHintIcon = (ImageView) searchView.findViewById(searchHintBtnId); searchHintIcon.setImageResource(R.drawable.search); TextView textView = (TextView) searchView.findViewById(hintTextId); textView.setTextColor(getResources().getColor(R.color.search_text_color)); textView.setHintTextColor(getResources().getColor(R.color.search_hint_text_color)); 

    Aquí está drawable / search_plate.xml

     <!-- main color --> <item android:bottom="1dp" android:left="1dp" android:right="1dp"> <shape > <solid android:color="@color/app_theme_color" /> </shape> </item> <!-- draw another block to cut-off the left and right bars --> <item android:bottom="10.0dp"> <shape > <solid android:color="@color/app_theme_color" /> </shape> </item> </layer-list> 

    Pruebe este código. Es muy fácil.

      // Associate searchable configuration with the SearchView SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); EditText searchEditText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); searchEditText.setHint("Search"); searchEditText.setHintTextColor(getResources().getColor(R.color.white)); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

    SearchEditText.setHintTextColor (getResources (). GetColor (R.color.white));

    La solución para cambiar el color del texto de Sugerencia de vista de búsqueda es:

      SearchView.SearchAutoComplete searchAutoComplete = (SearchView.SearchAutoComplete)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); searchAutoComplete.setHintTextColor(Color.GRAY); 

    Esto es realmente simple de lograr utilizando el styles.xml Sólo entiendo que themeing el SearchView está directamente relacionado con el tema de la barra de herramientas cuyo menu.xml se obtiene como una app:actionViewClass .

    1. Cree un estilo para la barra de herramientas.
    2. Aplicar ese estilo como tema en la barra de herramientas y cambia las vistas relacionadas y sus propiedades.

    Ver Documentación sobre SOF para la implementación completa.

    Con la librería appcompat más reciente (o si estás enfocando 5,0+), esto es posible hacer simplemente en XML usando un ThemeOverlay :

     <style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar"> <item name="autoCompleteTextViewStyle">@style/Widget.MyApp.AutoCompleteTextView.SearchView</item> </style> <style name="Widget.MyApp.AutoCompleteTextView.SearchView" parent="Widget.AppCompat.AutoCompleteTextView"> <item name="android:textColor">#000</item> <item name="android:textColorHint">#5000</item> </style> 

    Y luego en su archivo de diseño:

     <android.support.v7.widget.Toolbar app:theme="@style/ThemeOverlay.MyApp.ActionBar" ... /> 

    Si también desea que se aplique a las actividades que utilizan una ActionBar de ActionBar lugar de una Toolbar de Toolbar , puede agregarla al tema de la Activity :

     <style name="Theme.MyApp" parent="Theme.AppCompat"> <item name="actionBarTheme">@style/ThemeOverlay.MyApp.ActionBar</item> ... </style> 

    Ponga esto en su archivo XML:

     android:textColorHint="@android:color/white" 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.