gpt4 book ai didi

android - 如何在 ActionBar 的右侧保持展开的 SearchView(使用自定义图标时)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:28 33 4
gpt4 key购买 nike

我的问题与SearchView wrong alignment密切相关和 SearchView positions when expanded in ActionBar但那里发布的答案不起作用。

所以,我使用的是 SearchViewAction Bar :

<item android:id="@+id/action_search"
android:icon="@drawable/navi_search"
android:title="@string/action_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView"
/>

默认情况下(右上角,溢出菜单旁边):

enter image description here

问题是,当展开时,我希望 SearchView 保持在右侧,但相反,它移动到了左边缘,靠近主页按钮(应用程序图标)。

我尝试更改 showAsAction对于其中任何一个(as suggested here):

android:showAsAction="ifRoom"
android:showAsAction="always"

...这确实在展开时修复了对齐方式,但在折叠状态下自定义图标丢失:

enter image description here

另外,像 android:layout_alignParentRight="true" 这样的东西和 android:layout_centerInParent="true"在菜单上<item>没有影响。

有什么想法吗?

我的目标是 Android 4.0 及更高版本:

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />

最佳答案

好吧,我找到了一个方法:

onCreateOptionsMenu() 中,在标准菜单展开后,设置 ActionBar.LayoutParams Gravity.RIGHT 用于 SearchView 实例:

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

// ...

// Find the SearchView; make it aligned to right, also in expanded mode:
MenuItem item = menu.findItem(R.id.action_search);
SearchView search = (SearchView) item.getActionView();
search.setLayoutParams(new ActionBar.LayoutParams(Gravity.RIGHT));
}

(在菜单定义 XML 中,我仍然使用 android:showAsAction="ifRoom|collapseActionView"。)

现在 SearchView 在右侧打开,在图标所在的相同位置,自定义图标仍在使用中。

关于android - 如何在 ActionBar 的右侧保持展开的 SearchView(使用自定义图标时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20123177/

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