1

ハンバーガーのアイコンを変更したいと思います。解決策を提案してください。 MainActivityクラスを次のようにデフォルトのハンバーガーアイコンを変更するには?

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener { 


     private Toolbar mToolbar; 


DrawerLayout mDrawerLayout; 
    private FragmentDrawer drawerFragment; 
    RelativeLayout relativeid; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mToolbar = (Toolbar) findViewById(R.id.toolbar); 
     relativeid = (RelativeLayout) findViewById(R.id.relativeid); 
     setSupportActionBar(mToolbar); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawerFragment = (FragmentDrawer) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer); 
     drawerFragment.setUp(R.id.fragment_navigation_drawer, mDrawerLayout, mToolbar); 
     drawerFragment.setDrawerListener(this); 
     displayView(0); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     if (id == R.id.action_search) { 
      Toast.makeText(getApplicationContext(), "Search action is selected!", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onDrawerItemSelected(View view, int position) { 
     displayView(position); 
    } 

    private void displayView(int position) { 
     Fragment fragment = null; 
     String title = ""; 
     switch (position) { 
      case 0: 
       fragment = new HomeFragment(); 
       title = ""; 
       break; 
      case 1: 
       fragment = new FriendsFragment(); 
       title = ""; 
       break; 
      case 2: 
       fragment = new MessagesFragment(); 
       title = ""; 
       break; 
      default: 
       break; 
     } 

     if (fragment != null) { 
      FragmentManager fragmentManager = getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.replace(R.id.container_body, fragment); 
      fragmentTransaction.commit(); 
      // set the toolbar title 
      getSupportActionBar().setTitle(title); 
     } 
    } 
} 
+0

私はあなたが探している答えがここにあると思います:http://stackoverflow.com/a/32117399/2829316 –

答えて

3

は、カスタムツールバーを作成し、それを手動で膨らませる必要があります。

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

if (toolbar != null) { 
    setSupportActionBar(toolbar); 
    toolbar.setNavigationIcon(R.drawable.ic_drawer); 

    mDrawerToggle = new ActionBarDrawerToggle(this, 
       mDrawerLayout, 
       toolbar, 
       R.string.drawer_open, 
       R.string.drawer_close) { 

     /** Called when a drawer has settled in a completely closed state. */ 
     public void onDrawerClosed(View view) { 
      super.onDrawerClosed(view); 
     } 

     /** Called when a drawer has settled in a completely open state. */ 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 
     } 
    }; 

    // Set the drawer toggle as the DrawerListener 
    mDrawerLayout.setDrawerListener(mDrawerToggle); 
    mDrawerToggle.syncState(); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 
    mDrawerToggle.syncState(); 

これは機能するはずです。

関連する問題