2016-08-24 105 views
2

我有一個帶有背景可繪製的搜索視圖,但我似乎無法讓文本出現,無論我嘗試什麼。沒有文字顯示在SearchView中。SearchView不顯示查詢提示文本

我試過android:textandroid:queryHint,甚至使用mSearchView.setQueryHintText("search for something");以編程方式設置它,但這些都不起作用。 searchView不在actionBar中。

下面是搜索查看

<android.support.v7.widget.SearchView 
     android:id="@+id/m_search_view" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/searchbar_height" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_toLeftOf="@+id/other_button" 
     android:background="@drawable/rounded_corner_box" 
     android:focusableInTouchMode="true" 
     android:gravity="center_vertical|left" 
     android:paddingLeft="@dimen/left_padding" 
     android:queryHint="search for something" 
     android:textAppearance="@style/m_text_appearance" 
     android:textColor="@color/m_text_color" /> 

當我沒有設定一個背景,我沒有看到在所有的搜索查看(該搜索查看是半透明)的XML。

任何幫助,將不勝感激。

+0

您正在使用從支持庫的搜索查看,可能是你需要與應用程序和Android設置的屬性,如 機器人:queryHint =「搜索的東西」和 應用:queryHint =「搜索的東西」 – jonathanrz

回答

2

修復了我自己的問題:我不得不深入到SearchView的源代碼中。這是怎麼弄到的背景和文本的搜索查看顯示:

SearchView searchView = (SearchView)mLayout.findViewById(R.id.m_searchview); 
searchView.setQueryHint("search for something"); 
View searchTextView = searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); 
searchTextView.setBackground(
ResourcesCompat.getDrawable(getResources(), R.drawable. rounded_corner_box, getTheme())); 
View searchFrame = searchView.findViewById(android.support.v7.appcompat.R.id.search_edit_frame); 
searchFrame.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.m_background, getTheme())); 
4
searchView.setIconified(false); 
+0

爲什麼會這樣工作?搜索視圖收到onClick監聽器事件但未顯示鍵盤(InputMethod),也無法在強制顯示鍵盤時鍵入查詢。 – KGCybeX

0

在XML中,添加android:iconifiedByDefault="false"如果您已經爲android:queryHint設置的值。