我使用自定义ActioBar创建了一个应用程序。它可以工作,但不适用于所有设备。在联想 k990 上,它不正确。 - 对不起 - 联想 k900
看起来应该是这样的
第一个变种
ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.action_bar_category, null);
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(actionBarLayout);
}
第二个变种
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(R.layout.action_bar_category);
}
View actionBarLayout = actionBar.getCustomView();
ViewGroup.LayoutParams lp = actionBarLayout.getLayoutParams();
lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
actionBarLayout.setLayoutParams(lp);
第三种变体
ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.action_bar_main_menu, null);
ActionBar actionBar = getActionBar();
if(actionBar!= null){
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setHomeButtonEnabled(false);
actionBar.setLogo(null);
actionBar.setCustomView(actionBarLayout);
View v = actionBar.getCustomView();
ViewGroup.LayoutParams lp = v.getLayoutParams();
lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
v.setLayoutParams(lp);
}
你能帮助我吗?