gpt4 book ai didi

android - 对溢出菜单项使用自定义 View

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:04 24 4
gpt4 key购买 nike

我很难对操作栏 sherlock 中的溢出菜单执行任何操作。

screenshot

理想情况下,我想使用自定义 TextView为每个项目设置不同的字体并更改 pressed 的颜色状态。

我试过了(都没有成功):

Changing The Style Of Actionbar Overflow
Actionbar styled overflow menu items
listview as action overflow in sherlock actionbar
https://groups.google.com/forum/#!msg/actionbarsherlock/5lHOKNlXn_4/f9XicMXbFFAJ

我的应用程序将有不同的 fragment ,全部扩展 BaseFragment在溢出菜单中有不同的项目。我也在使用 v4 支持包。我正在这样创建我的菜单:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.activity_borrow, menu);
}

activity_borrow.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_filter"
android:title="test"
android:orderInCategory="100"
android:showAsAction="never"
/>
</menu>

我的应用使用继承自 Theme.Sherlock 的主题.

如何在该菜单中使用自定义 View ?或者至少,我怎样才能更改默认的蓝色 pressed状态?

最佳答案

要更改溢出列表项的颜色,请将两个项目添加到通常在 res/values/styles.xml 中定义的应用程序主题中:

<item name="android:dropDownListViewStyle">@style/DropDownListView</item>
<item name="dropDownListViewStyle">@style/DropDownListView</item>

在同一个文件中,添加您刚刚指定的样式:

<style name="DropDownListView" parent="@style/Widget.Sherlock.ListView.DropDown">
<item name="android:listSelector">@drawable/selectable_background</item>
</style>

最后在 drawable 文件夹中创建一个选择器 drawable selectable_background.xml,其中包含:

<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
<item android:state_pressed="false" android:state_focused="true" android:drawable="@color/focussed_color" />
<item android:state_pressed="true" android:drawable="@color/pressed_color" />
<item android:drawable="@android:color/transparent" />
</selector>

最后,定义通常放在colors.xml中的颜色:

<resources>
<color name="pressed_color">#FF8E4067</color> <!-- your purple tone already ;) -->
<color name="focussed_color">#DD8E4067</color>
</resources>

在我的应用程序中,我按照 baboo 的建议使用了“ActionBar Style Generator”,它可以方便地为您处理所有事情。对于这个答案,我只是提取并简化了我认为构成溢出菜单样式的部分。

我认为对三个不同项目进行造型的效果有些神秘:

  • 据我了解,android:dropDownListViewStyle 包括隐藏在 ActionBar 中“三点”后面的溢出菜单。
  • 不要与 android:actionDropDownStyle 混淆,如果您使用 ,它用于设置应用导航下拉菜单的样式actionBar.setNavigationMode(NAVIGATION_MODE_LIST)
  • 但是,某些带有硬件菜单按钮的 Android 设备(例如 Nexus S 或 Galaxy S3 Mini)不显示“三点”,而是显示从中滑入的叠加菜单如果单击硬件菜单按钮,则在屏幕底部。 android:popupMenuStyle 是设置此样式的正确属性。

同样,这只是我在自己的应用程序开发过程中所记得的。

此外,请确保检查没有其他样式文件(例如带有 configuration qualifiers 的文件夹)覆盖您刚刚定义的样式。

总而言之,我知道这只会改变列表项的背景颜色。要在那里使用完全自定义的 View ,您可以创建一个 custom spinner view ,向您的 ActionBar 添加一个带有“三点”图标的虚拟按钮,并在点击时打开微调器。

关于android - 对溢出菜单项使用自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338033/

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