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) {
}
}
что не так? если кто-нибудь знает решение, пожалуйста, помогите мне
Спасибо.
Ответы
Ответ 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)));