Android удаляет панель действий приложения - программирование
Подтвердить что ты не робот

Android удаляет панель действий приложения

Привет всем, я создаю 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) {
}

}

что не так? если кто-нибудь знает решение, пожалуйста, помогите мне Спасибо.

4b9b3361

Ответ 1

Вы используете

 actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
            | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); 

Итак, вы получаете значок Home.

Если вы хотите скрыть значок приложения в разделе "Особая активность"

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

Если вы хотите скрыть значок приложения в режиме полного использования приложения setDisplayShowHomeEnabled(false)  и setDisplayShowTitleEnabled(false)

Ответ 2

Попробуйте это.

setDisplayShowHomeEnabled(false);

Дополнительная ссылка

UPDATE:: - Если вы настроили свою панель действий с помощью XML, вы можете попробовать что-то вроде.

<item name="android:displayOptions"></item>

В конечном итоге это скроет ваше приложение и название приложения.

Как предложено в стеке, вы также можете попробовать некоторые комбинации, например..

getSupportActionBar().setHomeButtonEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setIcon(R.color.transparent);
    getSupportActionBar().setDisplayShowTitleEnabled(true);

UPDATE2

Панель действий автоматически настраивает все для вас. Для примера: если у вас много материалов в заголовке, тогда панель действий настраивает заголовок как-то вроде 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);

Тогда теперь у вас есть свой текст или любая вещь, которую вы хотите, как будто у вас есть btn здесь.

Просто примените клик-прослушиватель или любую вещь, которая вам нравится.

Надеюсь, что это поможет!

Ответ 3

Использование

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);

Ответ 4

Существует несколько способов сделать это:

Обработка времени выполнения:

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


getActionBar().setDisplayShowHomeEnabled(false);

Из xml:

<item name="android:icon">@android:color/transparent</item>

найти дополнительную информацию по следующему потоку: Удалить значок/логотип из панели действий на Android

Ответ 5

Мое требование - оставить кнопку "Назад" и заголовок панели действий без иконки/логотипа приложения. Это сработало для меня:

//Для отображения кнопки Назад

getActionBar().setDisplayHomeAsUpEnabled(true);

//Для сокрытия логотипа:

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