Cris Banes Guideに従って、ツールバーウィジェットをActionBarとして使用しています。私のユースケースでは、ViewPager内に含まれる別のフラグメントにスワイプしている間、アクティビティでナビゲーションドロワーを非表示にする必要がありました。以前は、ActionBarウィジェットを使用してナビゲーションドロワーを非表示にするときに、次のプロパティを使用していました。これは正常に動作するように見えました。 getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setHomeButtonEnabled(false);
ただし、使用するとAppCompat21に変更される
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false);
これは、actionBarのナビゲーションドロワーを非表示にしないようです。この点で何かが足りないのでしょうか。助けていただければ幸いです。
toolbar.setNavigationIcon(null);
ナビゲーションアイコンが非表示になります。参考までに、これを確認できます answer
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);
}
コードは、次を使用する場合にのみ機能するはずです。
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
そして
getSupportActionBar().setHomeButtonEnabled(false);
あなたも試すことができます:
toolbar.setNavigationIcon(null);