Java 尝试关闭searchview时的奇怪行为
我创建了一个带有搜索图标的工具栏,可以在clic上启动searchview。但是,当用户按手机上的“后退”关闭searchview时,我尝试添加一个Java 尝试关闭searchview时的奇怪行为,java,android,android-studio,menu,searchbar,Java,Android,Android Studio,Menu,Searchbar,我创建了一个带有搜索图标的工具栏,可以在clic上启动searchview。但是,当用户按手机上的“后退”关闭searchview时,我尝试添加一个setOnQueryTextFocusChangeListener,但图标出现在左侧,工具栏的“后退”图标始终存在 这是我的工具栏的xml代码: <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout2" a
setOnQueryTextFocusChangeListener
,但图标出现在左侧,工具栏的“后退”图标始终存在
这是我的工具栏的xml代码:
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<androidx.appcompat.widget.Toolbar
android:id="@+id/topAppBar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/ic_menu"
app:title="Notes" />
</com.google.android.material.appbar.AppBarLayout>
PS:我对这个searchview有很多问题,你有没有更好的方法在工具栏中添加搜索机制?我通过添加以下内容来解决这个问题:
@Override
public void onBackPressed() {
if (searchView != null && !searchView.isIconified())
searchView.setIconified(true);
super.onBackPressed();
}
我通过添加以下内容来解决此问题:
@Override
public void onBackPressed() {
if (searchView != null && !searchView.isIconified())
searchView.setIconified(true);
super.onBackPressed();
}
IIRC,您想使用
searchView.setIconified(true)
而不是searchView.onActionViewCollapsed()
。不幸的是,同样的行为需要等待一秒钟。filterNotes()
方法的意义是什么?SearchView
本身已经可以适当地处理展开和折叠。嗯,没有使用filterNotes()来过滤回收视图,但我没有将此部分和SearchView.setMaxWidth(Integer.MAX_值)放在一起
是在横向模式下扩展searchview,因为它不会占用所有屏幕。我看不到该方法中有任何RecyclerView
或过滤,但我想我的主要观点是,为什么要在
上将该方法设置为android:onClick
?为什么不在onCreateOptions菜单()
或onPrepareOptions菜单()
中进行设置,而不是每次单击时进行设置?IIRC,您希望使用searchView.setIconified(true)
而不是searchView.onActionViewCollapsed()
。不幸的是,同样的行为需要等待一秒钟。filterNotes()
方法的意义是什么?SearchView
本身已经可以适当地处理展开和折叠。嗯,没有使用filterNotes()来过滤回收视图,但我没有将此部分和SearchView.setMaxWidth(Integer.MAX_值)放在一起
是在横向模式下扩展searchview,因为它不会占用所有屏幕。我看不到该方法中有任何RecyclerView
或过滤,但我想我的主要观点是,为什么要在
上将该方法设置为android:onClick
?为什么不在onCreateOptions菜单()
或onPrepareOptions菜单()
中进行设置,而不是每次单击它?
@Override
public void onBackPressed() {
if (searchView != null && !searchView.isIconified())
searchView.setIconified(true);
super.onBackPressed();
}