5

Я пытаюсь использовать SearchView в своем макете (не внутри ToolBar или ActionBar).Android AppCompat SearchView EditText отсутствует нижняя строка на pre-lollipop

<FrameLayout android:layout_width="0dp" android:layout_weight="50" android:layout_height="wrap_content" > 
    <android.support.v7.widget.SearchView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|left" style="@style/MySearchViewStyle" /> 
    </FrameLayout> 

Я использую AppCompat, но он выглядит по-другому на pre-lollipop. В EditText отсутствует нижняя граница в устройствах с предварительным леллипопом.

леденец поиска отображает границу правильно: Lollipop SearchView with bottom border

Pre-леденец поиска отображается NO приграничные: Pre-lollipop SearchView with NO bottom border

Моя тема является основным:

<style name="Theme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- TOOLBAR --> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <!-- Search --> 
    <item name="searchViewStyle">@style/MySearchViewStyle</item> 
    <item name="android:searchViewStyle">@style/MySearchViewStyle</item> 
    <!-- COLOURS --> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/accent</item> 
    </style> 
    <style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView"> 
    <item name="android:editTextStyle">@style/EditText</item> 
    <item name="editTextStyle">@style/EditText</item> 
    </style> 
    <style name="EditText"> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:inputType">text</item> 
    <item name="android:cursorVisible">true</item> 
    <item name="android:maxLength">1000</item> 
    <item name="android:selectAllOnFocus">true</item> 
    <item name="android:paddingTop">4dp</item> 
    </style> 

Любая помощь, чтобы мои стили в соответствии бы будь большой благодарностью.

+0

Заметил один и тот же вопрос после обновления до последней поддержки Lib. У предыдущей версии такой проблемы нет. Продолжайте искать решение. – httpdispatch

+0

Ах, это могло бы объяснить это, так как у меня не было старой версии, я только добавил библиотеку дизайна на прошлой неделе. :-( Дайте мне знать, если вы найдете решение. Спасибо – Daisy

ответ

5

В соответствии с исходным кодом на https://github.com/android/platform_frameworks_support/blob/master/v7/appcompat/res/layout/abc_search_view.xml

search_src_text зрения имеет фон набор для @null

Чтобы получить нижнюю линию я использовал

searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text).setBackgroundResource(R.drawable.abc_textfield_search_default_mtrl_alpha); 
+0

По версии библиотеки поддержки версии 25.0.0, '((View) searchView.findViewById (android.support.v7.appcompat.R.id.search_src_text) .getParent()). setBackgroundResource (0); 'должен быть вызван для SearchViews, которые также не являются частью панели инструментов. – 0101100101