我该如何更改android.support.v7.widget.SearchView的提示文本颜色

问题描述 投票:-2回答:2

如何更改android.support.v7.widget.SearchView的提示文本颜色?

enter image description here

我看到了很多答案,但没有人给出如何更改searchview的提示文本颜色

<android.support.v7.widget.SearchView
        android:id="@+id/search"
        style="@style/SearchViewStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColorHint="@android:color/black"
        android:clickable="true"
        android:focusable="true"/>

活动代码在这里:

rootView = inflater.inflate(R.layout.list_of_complaints, container, false);

//calling in init view method
initView();

//getting complaints from server
myHelpRequest = new MyHelpRequest(listView, search, getActivity());

//setting progress bar visible to know user something is loading
progressbar.setVisibility(View.VISIBLE);

//set adapter for list items
myHelpRequest.getAllComplaintsFromServer(progressbar);
//search view listener logic
search.setActivated(true);
search.setQueryHint("search");
search.setQueryHint(Html.fromHtml("<font color = #ffffff>" + "search for quick access" + "</font>"));
search.onActionViewExpanded();
search.setIconified(false);
search.clearFocus();

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        Toast.makeText(getContext(),i+" item clicked",Toast.LENGTH_LONG).show();
        TextView text = (TextView)view.findViewById(R.id.help_id);
        String message= text.getText().toString();
        Toast.makeText(getActivity(),"helpID"+ message,  Toast.LENGTH_LONG).show();
        Intent intent=new Intent(getActivity(),MyHelpReqDetailsActivity.class);
        intent.putExtra("helpID",message);
        startActivity(intent);
    }
});

return rootView;
}
android material-design searchview
2个回答
0
投票

是的,我通过使用代码中的更改来解决我的问题

 search = (SearchView) rootView.findViewById(R.id.search);
    // search.setQueryHint("search");
    searchEditText = (EditText)search.findViewById(android.support.v7.appcompat.R.id.search_src_text);
    searchEditText.setTextColor(getResources().getColor(R.color.colorPrimary));
    searchEditText.setHintTextColor(getResources().getColor(R.color.colorPrimary));
    searchEditText.setHint("search here for quick access");

我评论search.setQueryHint(“search”);方法。然后我访问searchview的EditText,并调用searchEditText.setHint(“在这里搜索以便快速访问”);


0
投票

试试这个来改变你的searchView提示颜色

Style.xml

<style name="SearchViewTheme" parent="Widget.AppCompat.Light.SearchView">
<item name="android:maxWidth">10000dp</item>
<item name="android:textColorHint">@android:color/white</item>

searchView:

<android.support.v7.widget.SearchView
    android:id="@+id/search"
    style="@style/SearchViewStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
   android:theme="@style/SearchViewTheme"
    android:clickable="true"
    android:focusable="true"/>

或者,尝试通过java setHintColor:

search = (SearchView) rootView.findViewById(R.id.search);
    searchEditText = (EditText)search.findViewById(android.support.v7.appcompat.R.id.search_src_text);
    searchEditText.setTextColor(getResources().getColor(R.color.colorPrimary));
    searchEditText.setHintTextColor(getResources().getColor(R.color.colorPrimary));
© www.soinside.com 2019 - 2024. All rights reserved.