Android删除应用图标操作栏

use*_*799 10 android android-actionbar

大家好,我创建了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) {
}

}
Run Code Online (Sandbox Code Playgroud)

怎么了 ?如果有人知道解决方案,请帮助我谢谢.

and*_*ner 29

你用

 actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
            | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); 
Run Code Online (Sandbox Code Playgroud)

所以你得到Home图标.

如果您想在特定活动使用中隐藏应用程序图标

getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
Run Code Online (Sandbox Code Playgroud)

如果您想在完整应用程序使用setDisplayShowHomeEnabled(false) 和中 隐藏应用程序图标 setDisplayShowTitleEnabled(false)

  • 的setIcon(android.R.color.transparent); 似乎足以隐藏特定活动中的应用程序图标 (2认同)

And*_*ker 9

试试这个 ..

setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

更多参考

更新:: - 如果您使用XML自定义了操作栏,那么您可以尝试一些类似的东西.

<item name="android:displayOptions"></item>
Run Code Online (Sandbox Code Playgroud)

这最终将隐藏您的应用程序图标和标题..

正如在堆栈上建议你也可以尝试一些组合,如..

getSupportActionBar().setHomeButtonEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setIcon(R.color.transparent);
    getSupportActionBar().setDisplayShowTitleEnabled(true);
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

然后现在在这里你有你的textview ..或任何你想要的东西,你可能在这里有一个btn ..

现在只需应用点击监听器或任何你喜欢的东西..

希望能帮助到你!


Sub*_*xmi 8

使用

getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
Run Code Online (Sandbox Code Playgroud)

要么

getActionBar().setCustomView(R.layout.menu_example);
         actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM |
         ActionBar.DISPLAY_SHOW_HOME ); 
Run Code Online (Sandbox Code Playgroud)

将显示主页图标.所以只使用getSupportActionBar().setCustomView(R.layout.menu_example);

并隐藏应用程序图标的使用

getSupportActionBar().setDisplayShowHomeEnabled(false); getSupportActionBar().setDisplayShowTitleEnabled(false);


CoD*_*oDe 8

有多种方法可以做到:

运行时处理:

getActionBar().setIcon(
       new ColorDrawable(getResources().getColor(android.R.color.transparent)));  


getActionBar().setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

来自xml:

<item name="android:icon">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)

在以下主题中找到更多信息:从android上的操作栏中删除图标/徽标