Android - 在扩展和图标化时设置SearchView MenuItem宽度

时间:2016-06-23 02:56:39

标签: android searchview

我的菜单中包含4项与Android菜单项默认宽度不同的项目。这里是importSearchView的代码

res/menu

我的<item android:id="@+id/menu_toolbar_top_searchBtn" android:orderInCategory="3" android:title="@string/search" android:icon="@drawable/menu_search" app:actionLayout="@layout/menu_layout_search" app:showAsAction="always"/>

menu_layout_search

当宽度设置为menuitem_width时,与其他菜单相同&#39;宽度,按下时,它会保持在该宽度上。

我尝试过使用:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.SearchView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="@dimen/menuitem_width"
    android:layout_height="wrap_content"
    android:background="?attr/actionBarItemBackground"
    android:clickable="true"
    app:searchIcon="@drawable/menu_search"/>

要在 final Point p = new Point(); getWindowManager().getDefaultDisplay().getSize(p); final LayoutParams matchParentParams = new LayoutParams(p.x, LayoutParams.MATCH_PARENT); final LayoutParams wrapContentParams = new LayoutParams(p.x, LayoutParams.WRAP_CONTENT); searchView.setOnSearchClickListener(new View.OnClickListener() { @Override public void onClick(View v) { toolbarImage.setVisibility(View.GONE); toolbarTitle.setVisibility(View.GONE); notificationMenu.setVisible(false); drawerMenu.setVisible(false); searchView.setLayoutParams(matchParentParams); searchView.requestFocus(); } }); searchView.setOnCloseListener(new SearchView.OnCloseListener() { @Override public boolean onClose() { toolbarImage.setVisibility(View.VISIBLE); toolbarTitle.setVisibility(View.VISIBLE); notificationMenu.setVisible(true); drawerMenu.setVisible(true); searchView.setLayoutParams(wrapContentParams); return false; } }); MATCH_PARENT之间来回设置其参数,但当它返回到图标化状态时,它会将所有菜单移到左侧(它们位于右侧),从而破坏整个菜单布局)。

我在这里做错了什么?实际上是否有更简单的方法来设置WRAP_CONTENTiconified not iconified版本的宽度?

0 个答案:

没有答案