在我的家庭活动中,我有一个带有自定义 溢出菜单 的工具栏,我希望它能够改变颜色以符合工具栏背景颜色(导致工具栏背景颜色)可以改变(用户改变自己喜欢的颜色))...我不知道该怎么做:
这是我的1. Place all of your tables on top of each other
2. Remove the first two rows and any intervening blank rows
from all tables except the first one. It should look like one long table.
3. In the first blank row of the second column put:
=IF(SUMIF($A$3:$A$8,$A3,B$3:B$8)=0,"",SUMIF($A$3:$A$8,$A3,B$3:B$8)) and adjust it
for your correct last row.
4. Drag the formula down (for the neccesary number of rows) and over one column.
5. With all the formulas selected, right click and hold any edge of the selection,
move off and back on again and paste as values only. (You must do this step for it to work properly)
6. Copy and paste the company names.
7. Select the three columns of your new rows and remove duplicates.
Uncheck My Data has headers.
8. Sort the columns.
:
overflow_menu.xml
这是<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/overflow_save_current" app:showAsAction="always" android:title="@string/overflow_save_current" android:icon="@drawable/ic_action_save_light" />
<item android:id="@+id/overflow_settings" app:showAsAction="always" android:title="@string/overflow_settings" android:icon="@drawable/ic_action_settings_light" />
<item android:id="@+id/overflow_overflow" app:showAsAction="always" android:icon="@drawable/ic_action_overflow_light">
<menu>
<item android:id="@+id/overflow_feed_back" app:showAsAction="never|withText" android:title="@string/overflow_feed_back" android:icon="@drawable/ic_action_send_now_light" />
<item android:id="@+id/overflow_about_us" app:showAsAction="never|withText" android:title="@string/overflow_about_us" android:icon="@drawable/ic_action_about_light" />
<item android:id="@+id/overflow_exit" app:showAsAction="never|withText" android:title="@string/overflow_exit" android:icon="@drawable/ic_action_forward_light" />
</menu>
</item>
方法:
OnPrepareOptionsMenu()
我已经尝试更改每个元素的背景颜色......但每次都有NPE,@Override
public boolean onPrepareOptionsMenu(Menu menu) {
/* Resources res = getResources();
item = menu.findItem(R.id.overflow_feed_back);
SpannableStringBuilder builder = new SpannableStringBuilder("* " + res.getString(R.string.overflow_feed_back));
builder.setSpan(new ImageSpan(this, android.R.drawable.ic_menu_send), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
item.setTitle(builder); */
if (!Common.compatible(Common.color, 0xFF000000)) {
menu.findItem(R.id.overflow_save_current).setIcon(R.drawable.ic_action_save_dark);
menu.findItem(R.id.overflow_settings).setIcon(R.drawable.ic_action_settings_dark);
menu.findItem(R.id.overflow_overflow).setIcon(R.drawable.ic_action_overflow_dark);
} else {
menu.findItem(R.id.overflow_save_current).setIcon(R.drawable.ic_action_save_light);
menu.findItem(R.id.overflow_settings).setIcon(R.drawable.ic_action_settings_light);
menu.findItem(R.id.overflow_overflow).setIcon(R.drawable.ic_action_overflow_light);
}
return super.onPrepareOptionsMenu(menu);
}
希望你能为我找到一个解决方案,Darkball60
答案 0 :(得分:1)
所以...没有人帮助我...所以我必须独自工作......数小时......最终找到解决方案:
@Override
public View onCreateView(String name, Context context, AttributeSet attrs) {
// Do you own inflater stuff here
// Check for menu items (Options menu AKA menu key)
if (name.equalsIgnoreCase("android.support.v7.view.menu.ListMenuItemView")) {
try {
// Ask our inflater to create the view
final View view = LayoutInflater.from(context).createView(name, null, attrs);
// Kind of apply our own background
new Handler().post(new Runnable() {
public void run() {
if (!Common.compatible(Common.color, 0xFF000000)) {
try {
((TextView)((RelativeLayout)((ListMenuItemView)view).getChildAt(1)).getChildAt(0)).setTextColor(0xFFFFFFFF);
} catch (ClassCastException e) {
}
} else {
try {
((TextView)((RelativeLayout)((ListMenuItemView)view).getChildAt(1)).getChildAt(0)).setTextColor(0xFF000000);
} catch (ClassCastException e) {
}
}
view.setBackgroundColor(Common.color);
}
});
return view;
} catch (InflateException e) {
} catch (ClassNotFoundException e) {
}
}
return null;
}
如果背景很暗...所以textColor是白色的...如果背景很亮,textColor是黑色的。
希望它对我以外的其他人有所帮助,Darkball60(如果你喜欢这个答案......请随意投票:))