我有一项名为SearchRecipeActivity
的活动,其中包括:Toolbar Widget
,RecyclerView
。在Toolbar
内我想添加SearchView Widget
,无论何时我进入活动,它都会被扩展。这是我的第一个问题。我设法以某种方式做到了,但看起来它不能正常工作。
SearchView
会聚焦([X]
按钮高亮显示为白色,[X]
按钮不会
如同白色一样高而是灰色 - 它没有聚焦?第二个与清除搜索文本字段的[X]
按钮连接。当我将一些文字放入SearchField
时,它会删除所有文本,但是当文本字段为空时,当我点击[X]
时,它会完全关闭SearchWidget
。我不希望这样,因为此活动仅用于搜索。有办法解决这个问题吗?例如,Twitch
app仅在文本位于内部时显示[X]
按钮 - 以防止其关闭?
这是我的问题的图形艺术:D
以下是我的文件:
search_menu.xml
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_item_search_widget"
android:title="@string/action_search"
android:orderInCategory="0"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
SearchActivity.java
public class SearchRecipeActivity extends AppCompatActivity implements
SearchView.OnQueryTextListener {
private static final String TAG = SearchRecipeActivity.class.getSimpleName().toString();
private CoordinatorLayout searchRecipeCoordinatorLayout;
private BroadcastReceiver broadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_recipe);
// Setting Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Setting Up CoordinatorLayout
searchRecipeCoordinatorLayout = (CoordinatorLayout) findViewById(
R.id.activity_search_coordinator_layout);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
MenuItem searchItem = menu.findItem(R.id.menu_item_search_widget);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setIconified(false);
searchView.setOnQueryTextListener(this);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: {
finish();
return true;
}
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onQueryTextChange(String query) {
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
}