2016-07-31 34 views
0

Mein Activity Code:Android DrawerLayout mit benutzerdefinierter Toolbar

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Overview overview = new Overview(); 
    Intent intent = getIntent(); 

    user.setUserName(intent.getStringExtra("Username")); 

    setContentView(R.layout.activity_second); 
    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.mycontainer, overview) 
       .commit(); 
    } 
    Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar); 
    DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 

    toggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawerLayout.addDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navView = (NavigationView) findViewById(R.id.navview); 
    navView.setNavigationItemSelectedListener(this); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.actionbar_menu, menu); 
    return true; 
} 

// Toggle function for the navigational drawer 
@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    if(toggle.onOptionsItemSelected(item)){ 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

diese Zeile Nach der Zugabe:

verschwunden
getSupportActionBar().setDisplayShowTitleEnabled(false); 

Meine Schublade. Alles, was ich noch habe, ist mein actionbar_menu.

Meine XML:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context=".SecondActivity.SecondActivity" 
    android:id="@+id/drawer_layout"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:id="@+id/mycontainer" 
     > 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/my_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:elevation="4dp" 
      android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     /> 

    </LinearLayout> 
    <android.support.design.widget.NavigationView 
     android:layout_width="150dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="start" 
     android:layout_marginTop="?attr/actionBarSize" 
     android:id="@+id/navview" 
     app:menu="@menu/nav_menu" 
     app:headerLayout="@layout/nav_header" 
     > 

    </android.support.design.widget.NavigationView> 

</android.support.v4.widget.DrawerLayout> 

Also im Grunde, wie bekomme ich meine beiden ActionBar, mein DrawerLayout und ein eigener Titel zu arbeiten? Ich muss die showTitleEnabled deaktivieren, um einen benutzerdefinierten Titel festzulegen, aber es macht mein Menü verschwinden. Also, wie repariere ich das?

Antwort

0

Sie können eine benutzerdefinierte Symbolleiste Layout erstellen und es in Ihrem XML statt <android.support.v7.widget.Toolbar>

und in Ihrem Layout benutzerdefinierte Symbolleiste ein TextView setzen.

+0

Das bringt meine Navigationsschublade nicht zurück. Es fügt nur einen neuen benutzerdefinierten Titel hinzu – user3117628

+0

Sie können 'getSupportActionBar() verwenden. SetDisplayShowHomeEnabled (true);' – SadeghAlavizadeh

0
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

fehlte. Das behebt es