J'ai créé une application qui a un tiroir de navigation, ça marche bien, mais le seul problème est que je vois deux barres d'outils. Un dans lequel il y a le bouton Actionbartoggle et l'autre qui est par défaut. Maintenant, le tutoriel que j'ai vu a utilisé une barre d'outils dans le contenu principal de la disposition des tiroirs et, évidemment, les contenus de navigation proviennent du menu. Maintenant le problème est que je pense que nous devons passer une référence de barre d'outils dans le constructeur d'Actionbardrawertoggle, et après que je l'ai passé correctement il fonctionne bien, mais je vois deux barres d'outils/barres d'action. Fondamentalement, ma question est comment puis-je obtenir le bouton bascule sur la barre d'action principale et ne pas créer une deuxième barre d'outils créée? J'ai essayé d'utiliserPourquoi deux barres d'outils s'affichent-elles lorsque je crée une application avec un tiroir de navigation?
<style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">
Il me aide à cacher la actionbar supérieure mais je ne pense pas que ce soit la bonne façon de le faire. Je télécharger mon écran de sortie et le code:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Page Content -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</LinearLayout>
<!-- Navigation View -->
<android.support.design.widget.NavigationView
android:id="@+id/navigationView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
app:itemTextColor="#5DADE2"
app:menu="@menu/drawer_items"/>
</android.support.v4.widget.DrawerLayout>
MainActivity:
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Toast;
import java.util.HashMap;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
SessionManager session;
private Toolbar mToolbar;
private DrawerLayout mDrawerLayout;
ActionBarDrawerToggle drawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_area);
setupToolbarMenu();
setupNavigationDrawerMenu();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.lg:
session.logoutUser();
return true;
default:
return super.onOptionsItemSelected(item);
}
} private void setupToolbarMenu() {
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setTitle("Home Page");
}
private void setupNavigationDrawerMenu() {
NavigationView navigationView = (NavigationView) findViewById(R.id.navigationView);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
navigationView.setNavigationItemSelectedListener(this);
navigationView.setItemIconTintList(null);
drawerToggle = new ActionBarDrawerToggle(this,
mDrawerLayout,mToolbar,
R.string.drawer_open,
R.string.drawer_close);
mDrawerLayout.addDrawerListener(drawerToggle);
drawerToggle.syncState();
} @Override // Called when Any Navigation Item is Clicked
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
closeDrawer();
switch (menuItem.getItemId()) {
case R.id.home:
// Put your Item specific Code here
break;
case R.id.invoice:
Intent intent = new Intent(this,details.class);
startActivity(intent);
// Put your item specific Code here
break;
}
return true;
}
// Close the Drawer
private void closeDrawer() {
mDrawerLayout.closeDrawer(GravityCompat.START);
}
// Open the Drawer
private void showDrawer() {
mDrawerLayout.openDrawer(GravityCompat.START);
}
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(GravityCompat.START))
closeDrawer();
else{
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure?")
.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}).setNegativeButton("no", null).show();}
}
}
mon fichier styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
Je sais que cela pourrait ne pas être d'une certaine utilité, mais voici mon fichier manifeste aussi:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".details" />
<activity android:name=".Login"
android:label="Login"/>
<activity android:name=".MainActivity" />
<activity android:name=".recycler" />
<activity android:name=".RegisterActivity" />
<activity android:name=".SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Et voici la sortie que je reçois:
Veuillez vérifier les liens suivants: https://stackoverflow.com/questions/24307919/action-bar-drawer-toggle-custom-icon https://stackoverflow.com/questions/29558303/change-icon-of-navigation-drawer –