8

Yeni AppCompat v21'i kullanarak SearchView widget'ını stillemeye çalışıyorum, ancak bazı sorunlarla karşılaşıyorum. "SuggestionRowLayout" özniteliğine ayarladığım düzen ne olursa olsun, hiçbir şey yapmaz. SearchView'un öneri açılır listesi aynı şekilde kalır.Destek kütüphanesini kullanarak SearchView Widget'ini tasarlayın v21

"Aksan rengi", "ana renk" ile aynı renk olduğunda, sahip olduğum diğer sorun da, aramada, ayraçın nerede olduğunu ayırt etmek imkansız. Sadece orada uygulanacak olan SearchView'daki vurgu rengini nasıl değiştirebilirim biliyor musunuz? Play Müzik'in aynı soruna sahip olduğunu buldum.

Ben Android Geliştiricileri blogundan kılavuz takip ediyorum: Ben SearchView için ve de özelliklerini alınırken oluşur zaman SearchView içinde SearchView kaynak suggestionRowLayout kaynak değerinde gördüklerimi göre

http://android-developers.blogspot.com.es/2014/10/appcompat-v21-material-design-for-pre.html

cevap

5

Metot getSuggestionRowLayout(). Öte yandan v7 kütüphanesinin SuggestionAdapter uygulaması abc_search_dropdown_item_icons_2line'u şişiriyor. Geçici bir çözüm için

Fikir: refs.xml yardımıyla farklı bir düzen başvuran

deneyin. Eğer

<item type="layout" name="abc_search_dropdown_item_icons_2line">@layout/my_suggestion_row</item> 
+0

geçerli değildi, SearchView tipi android.support.v7.widget.SearchView değil olmasıydı! Ancak [belgeler] 'e göre (http://android-developers.blogspot.com.es/2014/10/appcompat-v21-material-design-for-pre.html) yeni Api, SearchView'u şekillendirmeyi desteklemektedir. Ben senin çözüm önce denedik şey bu: '' – MrBrightside

+0

Bu benim için – JDJ

0

suggestionsRowLayoutabc_search_dropdown_item_icons_2line Benim için de çalışma değildi gibi views için aynı kimlikleri tutmak emin olun.

Benim durumumda, her satırın arka plan rengini ve metin rengini değiştirmem gerekiyordu. Elbette tıklama için bir selektör çekilebilir arka planı ayarlayabilirsiniz

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/white" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="12dp" > 

    <TextView 
     android:id="@+id/item" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="@color/red" /> 

</LinearLayout> 

public class SuggestionsAdapter extends CursorAdapter 
{ 
    public SuggestionsAdapter(Context context, Cursor cursor) 
    { 
     super(context, cursor, false); 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) 
    { 
     TextView tv = (TextView) view.findViewById(R.id.item); 

     tv.setText(cursor.getString(COL_NAME)); 
    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) 
    { 
     LayoutInflater inflater = (LayoutInflater) 
       context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     // I modified the layout of search_item.xml 
     View view = inflater.inflate(R.layout.search_item, parent, false); 

     return view; 
    } 
} 

search_item.xml:

Yani sadece View düzeni benim SuggestionsAdapter içinde newView() döndü modifiye vurgular.

1

Sorunum dolayısıyla tüm şekillendirme

çalışır
<item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="@string/action_search" 
     app:showAsAction="ifRoom" 
     app:actionViewClass="android.support.v7.widget.SearchView"/> 
İlgili konular