gpt4 book ai didi

Android ActionBar 自定义搜索 View

转载 作者:IT王子 更新时间:2023-10-28 23:52:46 30 4
gpt4 key购买 nike

--- 解决了问题 - 在编辑文本中添加了答案 ---

我在我的 Android 应用程序中使用 ActionBar Sherlock。在那里我想显示一个 SearchView。到目前为止它运行良好,但我意识到,在尝试自定义它时我做错了。

我是这样创建的:

searchView.setQueryHint("Search: ");
searchView.setOnQueryTextListener(this);
searchView.setOnCloseListener(...);

searchMenuItem = menu.add("Search place");
searchMenuItem.setIcon(R.drawable.ic_action_search)
.setActionView(searchView)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

我想做两件事:

  1. 更改显示在出现的文本字段中的文本“搜索”的颜色。看起来我用主题中的整体文本样式更改了它,但我希望我能以某种方式设置单独的颜色。

  2. 打开此搜索 View 时,它会出现在操作栏的左侧。但我需要它在右侧。图标(放大镜)实际上位于栏的右侧,但按下它会打开左侧的 EditTextfield。我尝试使用 LayoutParams,但在尝试使用 LayoutParams 将其添加到操作栏时,我遗漏了一些重要的东西。

enter image description here

所以希望有人可以帮助我。

非常感谢, 托比亚斯

---- 编辑----

好的,一件事已经解决了。通过 XML 添加 ActionBar 会使 TextEdit 向右。

getSupportMenuInflater().inflate(R.menu.activity_main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
Log.e(TAG, "searchView: " + searchView);

在我的 menu.xml 中

<item android:id="@+id/action_search"
android:title="Search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:actionViewClass="com.actionbarsherlock.widget.SearchView" />

所以至少解决了一个谜团(为什么这会有所作为)。但是新创建的 XML 在调用时不再关闭

searchMenuItem.collapseActionView();

所以还是有问题。

--- 编辑 2 ---

只是为了让你知道。我找到了文本颜色的解决方案。可以通过使用SearchView的AutoCompleteTextView来实现:

AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(R.color.white));
searchText.setTextColor(getResources().getColor(R.color.white));

所以我遇到的最后一个问题是 SearchView 在提交文本时不再关闭。所以 collapseActionView() 等不起作用。有什么想法吗?

--- 编辑 3 ---

好的,我找到了解决方案。我不知道这是否是正确的方法,但是在使用时

((SearchView) searchMenuItem.getActionView()).setIconified(true);

它关闭 EditText

我必须这样做两次,因为第一次只是“删除”我的输入文本并显示“提示”,而第二次使用是“关闭”提示 EditText 并将 searchView 折叠到放大镜。笨拙的风格,但它的作品。 :-)

最佳答案

我上了一节课SearchViewFormatter轻松格式化 native SearchView android 小部件。一个例子:

new SearchViewFormatter()
.setSearchBackGroundResource(R.drawable.my_bg)
.setSearchIconResource(R.drawable.my_ic, true, false) //true to icon inside edittext, false to outside
.setSearchVoiceIconResource(R.drawable.my_ic)
.setSearchTextColorResource(R.color.my_color)
.setSearchHintColorResource(R.color.my_color)
.setSearchCloseIconResource(R.drawable.my_ic)
.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS)
.format(mSearchView);

关于Android ActionBar 自定义搜索 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137141/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com