如何在android中找到系统Action Bar中存在的不同图标的宽度

时间:2014-09-10 22:06:26

标签: android android-actionbar

我需要在点击操作栏中展开时调整搜索空间的大小,但为此我需要知道操作栏中存在的空宽度。 我没有找到任何方法来检测动作栏中的空白区域。请帮帮我

当我点击搜索图标时,操作栏的标题缩小了,所以为了解决这个问题,我需要为搜索图标设置maxwidth(当它展开时)并设置maxwidth我需要动作栏中的空白区域。

- >我试过了collapseActionView,但这是给文字而不是图标。

public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.split_pane_menu, menu);

    mActionBarMenu = menu;

    MenuItem searchItem = menu.findItem(R.id.split_pane_search);
    mSearchView = (SearchView) searchItem.getActionView();

    ***mSearchView.setMaxWidth(500);***  <----- to set this value , I need to know how much free space is there in action bar
    ----
    ----
}

请帮帮我

1 个答案:

答案 0 :(得分:0)

如果您在XML中指定菜单操作元素,则可以为每个元素指定ID。然后在代码中,您可以使用findViewById获取对其视图的引用。

   <menu xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:id="@+id/action_search"
              android:icon="@drawable/ic_action_search"
              android:title="@string/action_search"
              android:showAsAction="ifRoom" />
        <item android:id="@+id/action_settings"
              android:title="@string/action_settings"
              android:showAsAction="never" />
    </menu>

您可以将项目的layout_width设置为“match_parent”或“fill_parent”,而不是确定actionBar中的剩余空间,而是实现相同的效果。