gpt4 book ai didi

java - 使用自定义主题的 actionbar 时如何更改 actionbarsherlock 菜单项字体?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:51 26 4
gpt4 key购买 nike

当我使用默认的 sherlock light 主题时,我可以通过此方法更改字体(它可以转换为 TextView)

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);

getLayoutInflater().setFactory(new LayoutInflater.Factory() {
public View onCreateView(String name, Context context,
AttributeSet attrs) {

if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")
|| name.equalsIgnoreCase("TextView")) {
try {
LayoutInflater li = LayoutInflater.from(context);
final View view = li.createView(name, null, attrs);
new Handler().post(new Runnable() {
public void run() {

// here I can change the font!
((TextView)view).setTypeface(MY_CUSTOM_TYPE_FACE);
}
});
return view;
} catch (InflateException e) {
// Handle any inflation exception here
} catch (ClassNotFoundException e) {
// Handle any ClassNotFoundException here
}
}
return null;
}
});

return true;
}

actiobarsherlock with default light theme

但是当我使用带有 this tool 的自定义主题时, 上述解决方案不起作用。这样,每个项目都是 ActionMenuItemView 的一个实例,我不知道如何对其应用字体。

actiobarsherlock with custom theme

最佳答案

需要创建自定义菜单 View

  private ActionBar setCustomView(ActionBar actionBar,String title, String subtitle,boolean isSubTitleEnable){
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.customer_view, null);

TextView tv = (TextView) v.findViewById(R.id.cust_action_bar_title);
Typeface tf = Typeface.createFromAsset(this.getAssets(), "YOURFONT.ttf");
tv.setTypeface(tf);
tv.setText(title);


actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayOptions(0, actionBar.DISPLAY_SHOW_TITLE);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(v);
return actionBar;
}

关于java - 使用自定义主题的 actionbar 时如何更改 actionbarsherlock 菜单项字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757094/

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