как да скриете индикатора на чекмеджето за навигация, докато използвате appcompat21

Използвам приспособлението на лентата с инструменти като ActionBar, следвайки ръководството на Cris Banes. В моя случай на използване трябваше да скрия чекмеджето за навигация в дейността, докато плъзгам към друг фрагмент, съдържащ се във ViewPager. Преди това използвах следните свойства, докато използвах приспособлението ActionBar, за да скрия чекмеджето за навигация. Това изглежда работеше правилно. getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setHomeButtonEnabled(false);

въпреки че сега се променя на AppCompat21 при използване

getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false);

Това не изглежда да скрива чекмеджето за навигация в лентата за действие. Пропускам ли нещо в това отношение всяка помощ се оценява.


person harshitpthk    schedule 02.03.2015    source източник


Отговори (3)


toolbar.setNavigationIcon(null);

Това ще скрие иконата за навигация, за справка можете да проверите този отговор

person RobinHood    schedule 02.03.2015
comment
Благодаря, изглежда, че скрива иконата за навигация, но не използвам персонализирана икона за setIcon. И така, как да върна индикатора на чекмеджето за навигация. - person harshitpthk; 02.03.2015
comment
благодаря работи с toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha)); - person harshitpthk; 02.03.2015

Ако използвате Toolbar вътре в DrawerLayout --> AppBarLayout

тогава класът

ActionBarDrawerToggle-->setDrawerIndicatorEnabled(false) 

ще направи иконата на чекмеджето за навигация невидима

public class MainActivity extends AppCompatActivity
                implements NavigationView.OnNavigationItemSelectedListener
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
//the below line of code will allow you to hide the nav drawer icon 
        toggle.setDrawerIndicatorEnabled(false);    
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
    }
person Naval Kishor Jha    schedule 16.08.2017
comment
Когато опитам това, получавам икона със стрелка назад вместо иконата на хамбургер (3 реда). :-( - person ban-geoengineering; 23.09.2017
comment
...упс. Това се случваше, защото все още имах actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true);. Премахнете ги и вече работи добре. 10 точки! :-) - person ban-geoengineering; 23.09.2017

вашият код трябва да работи само когато използвате:

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

и

getSupportActionBar().setHomeButtonEnabled(false);

можете да опитате също:

toolbar.setNavigationIcon(null);
person Stoycho Andreev    schedule 02.03.2015
comment
благодаря toolbar.setNavi.. изглежда го скрива, но за показването му обратно, трябваше да го използвам. toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha)); - person harshitpthk; 02.03.2015
comment
@harshitpthk Мразя да прибягвам до подобни хакерски решения, но понякога не може да се помогне. - person lasec0203; 24.08.2019
comment
Само бележка към интернет пътешествениците, които може да дойдат след... важно е да използвате getSupportActionBar(), НЕ getActionBar() ???? - person Jonathan; 06.12.2019