J'ai créé l'application et je souhaite utiliser le menu du tiroir de navigation, mais lorsque j'ai tenté de l'éditer dans le tiroir de navigation xml, le problème "Attendre la fin de la construction ..." s'est produit et je ne vois pas la mise en page à gauche de Studio Android
raconter
layout_preview non trouvé ici
J'ai essayé cette soultion pour résoudre ce problème, mais malheureusement, cela ne fonctionnait pas pour moi
c'est activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
tools:showIn="navigation_view">
<group Android:checkableBehavior="single">
<item
Android:id="@+id/articles"
Android:icon="@drawable/ic_menu_camera"
Android:title="@string/articles" />
<item
Android:id="@+id/windows"
Android:icon="@drawable/ic_menu_gallery"
Android:title="@string/windows" />
<item
Android:id="@+id/linux"
Android:icon="@drawable/ic_menu_slideshow"
Android:title="@string/linux" />
<item
Android:id="@+id/miscellaneous_devices"
Android:icon="@drawable/ic_menu_manage"
Android:title="@string/miscellaneous_devices" />
<item
Android:id="@+id/information_security"
Android:icon="@drawable/ic_menu_manage"
Android:title="@string/information_security" />
<item
Android:id="@+id/facebook"
Android:icon="@drawable/ic_menu_manage"
Android:title="@string/facebook" />
</group>
<item Android:title="Communicate">
<menu>
<item
Android:id="@+id/nav_share"
Android:icon="@drawable/ic_menu_share"
Android:title="Share" />
<item
Android:id="@+id/nav_send"
Android:icon="@drawable/ic_menu_send"
Android:title="Send" />
</menu>
</item>
</menu>
activity_main
package www.pro.cs_is.com.procsis;
import Android.os.Bundle;
import Android.support.design.widget.FloatingActionButton;
import Android.support.design.widget.Snackbar;
import Android.view.View;
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.support.v7.widget.Toolbar;
import Android.view.Menu;
import Android.view.MenuItem;
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);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.miscellaneous_devices) {
// Handle the camera action
} else if (id == R.id.articles) {
} else if (id == R.id.windows) {
} else if (id == R.id.linux) {
} else if (id == R.id.facebook) {
} else if (id == R.id.information_security) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
Update 1: après plusieurs tentatives, cela semble être un problème général après la mise à jour IDE vers la version 3.1.2, jusqu'à présent, il n'y a qu'un seul solution , ce que @mtak a suggéré bien qu'il soit similaire au menu principal options dans l'aperçu
Supprimer la ligne
tools:showIn="navigation_view"
à partir de activity_main_drawer.xml et à reconstruire. Cela a résolu le même problème pour moi . Je ne sais pas pourquoi !!!
Problème résolu dans AS 3.1.3 (8 juin 2018) et réapparu à nouveau (16 juin 2018) !!!
Nouvelle solution de contournement temporaire:
tools:showIn="navigation_view"
dans le fichier de menu.Si vous fermez le fichier de menu et le rouvrez, le problème revient! Toujours pas de prévisualisation en texte.
Vous pouvez essayer ce qui suit:
Exécuter Build puis essayer de voir l'aperçu à nouveau
Fermez la mise en page actuelle, ouvrez-en une autre, puis rouvrez-la
J'ai trouvé la solution. Supprimez ces deux lignes d’outils et fermez/rouvrez:
xmlns: tools = "http://schemas.Android.com/tools"
tools: showIn = "navigation_view"