1

私はアプリ内にナビゲーション引き出しを実装しており、大部分は正常に動作しているようです。ホームボタンは、回転時に引き出しアイコンから上ボタンに変わります - ナビ引き出しが開いているときのみ

私はホームボタンをナビ引き出しアイコン(ハンバーガー)に設定していますが、これは通常の回転でも維持されます。画像1(ポートレート)と画像2(回転後の風景)に見られるように。画像で見ることができるよう Image 1

Image 2

は、私はNAVの引き出しを開くとしかし、その後、画面を回転させ、その後、上ボタンにホームボタンの変更をNAVの引き出しを閉じ3. Image 3

私は、常にハンバーガーのアイコンのままですが、運がなかったので、変更を加えました。

マイコードのMainActivityは以下のとおりです。

public class MainActivity extends AppCompatActivity { 
private String[] mNavigationDrawerItemTitles; 
private DrawerLayout mDrawerLayout; 
private ListView mDrawerList; 
Toolbar toolbar; 
private String mDrawerTitle; 
private String mTitle; 
ActionBarDrawerToggle mDrawerToggle; 
private static int sNavPosition = 0; 
private static final String NAV_POSITION_KEY = "navKey"; 
private static final String TAG = MainActivity.class.getSimpleName(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mDrawerTitle = getTitle().toString(); 
    mTitle = getTitle().toString(); 
    mNavigationDrawerItemTitles = getResources().getStringArray(R.array.drawer_fragment_items); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (ListView) findViewById(R.id.left_drawer); 
    setUpToolbar(); 
    NavDrawerItem[] navDrawerItems = new NavDrawerItem[4]; 

    navDrawerItems[0] = new NavDrawerItem(getString(R.string.nav_home)); 
    navDrawerItems[1] = new NavDrawerItem(getString(R.string.nav_aims)); 
    navDrawerItems[2] = new NavDrawerItem(getString(R.string.nav_arttrail)); 
    navDrawerItems[3] = new NavDrawerItem(getString(R.string.nav_submission)); 

    DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this, R.layout.drawer_list_item,navDrawerItems); 
    View header = getLayoutInflater().inflate(R.layout.drawer_header,null); 
    mDrawerList.addHeaderView(header); 
    mDrawerList.setAdapter(adapter); 
    mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerLayout.addDrawerListener(mDrawerToggle); 
    setUpDrawerToggle(); 
    if (savedInstanceState != null && savedInstanceState.containsKey(NAV_POSITION_KEY)){ 
     sNavPosition = savedInstanceState.getInt(NAV_POSITION_KEY); 
    } 
    new DrawerItemClickListener().selectItem(sNavPosition); 
} 

private void setUpDrawerToggle(){ 
    mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout,toolbar,R.string.app_name,R.string.app_name); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    mDrawerToggle.setDrawerIndicatorEnabled(true); 
    mDrawerToggle.syncState(); 
} 



@Override 
protected void onPostCreate(@Nullable Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    mDrawerToggle.syncState(); 
} 

private void setUpToolbar(){ 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

} 



@Override 
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { 
    super.onSaveInstanceState(outState, outPersistentState); 
    outState.putInt(NAV_POSITION_KEY,sNavPosition); 
} 

}

私は、ナビゲーションのためのクリックリスナーに関する不要なコードを除外しています。

何か助力や提案をいただければ幸いです。ありがとうございました。

答えて

2

はとにかく、助けに感謝を動作しませんでしたウル
setUpDrawerToggle();方法残念ながら

Edit: setDisplayHomeAsUpEnabled(false) hides the default back button 
+0

からgetSupportActionBar().setDisplayHomeAsUpEnabled(true);
mDrawerToggle.setDrawerIndicatorEnabled(true);を削除してみてください。他の提案は歓迎です – AF1001

+0

getSupportActionBar()。setDisplayHomeAsUpEnabled(false);デフォルトの戻るボタンを隠すために使用されます。 –

+0

私はonDrawerCloseイベントでsetDisplayHomeAsUpEnabled(false)を決定し、現在動作しています。ありがとうございました。 – AF1001

関連する問題