大家好我创建ActionBar。 viewpages和自定义操作栏。现在我想在ActionBar中删除(隐藏)应用程序图标 我用过setDisplayShowHomeEnabled(false);但什么都没发生。 这是我的代码
public class MainActivity extends FragmentActivity implements TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
private String[] tabs = { "test1", "test1", "test1", "test1",
"test1" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar = getActionBar();
actionBar.setHomeButtonEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
//actionBar.setIcon(R.color.white);
actionBar.setDisplayShowTitleEnabled(true);
Drawable d = getResources().getDrawable(R.drawable.acttitle);
getActionBar().setBackgroundDrawable(d);
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
| ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
viewPager = (ViewPager) findViewById(R.id.vp_main);
viewPager.setAdapter(mAdapter);
getActionBar().setCustomView(R.layout.menu_example);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM |
ActionBar.DISPLAY_SHOW_HOME );
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// actionBar.setStackedBackgroundDrawable(getResources().getDrawable(
// R.drawable.background)); background viewpager
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
}
有什么不对?如果有人知道解决方案,请帮助我 谢谢。
答案 0 :(得分:29)
您使用
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
| ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
所以你得到主页图标。
如果您想隐藏特定活动使用中的应用程序图标
getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
如果您想要在完整应用程序使用中隐藏应用程序图标
setDisplayShowHomeEnabled(false)
和setDisplayShowTitleEnabled(false)
答案 1 :(得分:9)
试试这个..
setDisplayShowHomeEnabled(false);
更新:: - 如果您使用XML自定义了操作栏,那么您可以尝试一些类似的东西。
<item name="android:displayOptions"></item>
这最终将隐藏您的应用图标和标题..
正如在堆栈上建议的那样,您也可以尝试一些组合,如..
getSupportActionBar().setHomeButtonEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setIcon(R.color.transparent);
getSupportActionBar().setDisplayShowTitleEnabled(true);
<强> UPDATE2 强>
Action Bar会自动为您调整所有内容。 对于Ex:如果你在标题栏中有很多东西,那么Action Bar会调整标题,比如YourPr ...而不是像YourProject这样的完整标题。
你不必为此感到好奇。
更新3
如果某人想要自定义ActionBar,那么就可以轻松实现...
actionBar = getSupportActionBar();
actionBar.setCustomView(R.layout.action_bar_confirm_cabs);
fare_ll = (TextView) actionBar.getCustomView().findViewById(
R.id.fare_ll);
confirm_back = (LinearLayout) actionBar.getCustomView().findViewById(
R.id.confirm_cabs_back);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
然后现在在这里你有你的textview ..或任何你想要的东西,就像你可能在这里有一个btn ..
现在只需应用点击监听器或任何你喜欢的东西..
希望它有所帮助!
答案 2 :(得分:8)
使用
getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
或
getActionBar().setCustomView(R.layout.menu_example);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM |
ActionBar.DISPLAY_SHOW_HOME );
将显示主页图标。因此,仅限使用getSupportActionBar().setCustomView(R.layout.menu_example);
并隐藏应用图标使用
getSupportActionBar().setDisplayShowHomeEnabled(false); getSupportActionBar().setDisplayShowTitleEnabled(false);
答案 3 :(得分:8)
有多种方法可以做到:
运行时处理:
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(android.R.color.transparent)));
getActionBar().setDisplayShowHomeEnabled(false);
来自xml:
<item name="android:icon">@android:color/transparent</item>
查找有关以下主题的更多信息:Remove icon/logo from action bar on android
答案 4 :(得分:0)
我的要求是保留没有应用程序图标/徽标的后退按钮和操作栏标题。 这对我有用:
//用于显示“后退”按钮
getActionBar().setDisplayHomeAsUpEnabled(true);
//用于隐藏徽标:
getActionBar().setLogo(new ColorDrawable(getResources().getColor(android.R.color.transparent)));