web-dev-qa-db-ja.com

appcompat21の使用中にナビゲーションドロワーインジケーターを非表示にする方法

Cris Banes Guideに従って、ツールバーウィジェットをActionBarとして使用しています。私のユースケースでは、ViewPager内に含まれる別のフラグメントにスワイプしている間、アクティビティでナビゲーションドロワーを非表示にする必要がありました。以前は、ActionBarウィジェットを使用してナビゲーションドロワーを非表示にするときに、次のプロパティを使用していました。これは正常に動作するように見えました。 getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setHomeButtonEnabled(false);

ただし、使用するとAppCompat21に変更される

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

これは、actionBarのナビゲーションドロワーを非表示にしないようです。この点で何かが足りないのでしょうか。助けていただければ幸いです。

12
harshitpthk
toolbar.setNavigationIcon(null);

ナビゲーションアイコンが非表示になります。参考までに、これを確認できます answer

16
RobinHood

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

コードは、次を使用する場合にのみ機能するはずです。

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

そして

getSupportActionBar().setHomeButtonEnabled(false);

あなたも試すことができます:

toolbar.setNavigationIcon(null);
4
Sniper