Cette Activité a déjà une barre d'action fourni par la fenêtre le décor?
Je développe une application android dans matrial de conception.Je suis en train d'utiliser la barre d'outils la barre d'action de mon application.mais lors de l'exécution de l'app, je crasging & obtenez l'erreur.
Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
J'ai déjà passé par ces liens, mais pas de travail
lien link2
style.xml
<style name="AppTheme" parent="AppTheme.Base" />
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDarker</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@android:color/white</item>
</style>
<color name="primary">#457C50</color>
<color name="primaryDarker">#580C0C</color>
MianActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar toolbar;
DrawerLayout mDrawerLayout;
FrameLayout mainView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
mainView=(FrameLayout)findViewById(R.id.frame_container);
ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
toolbar,
R.string.app_name,
R.string.app_name
)
{
public void onDrawerClosed(View view)
{
super.onDrawerClosed(view);
invalidateOptionsMenu();
syncState();
}
public void onDrawerOpened(View drawerView)
{
super.onDrawerOpened(drawerView);
invalidateOptionsMenu();
syncState();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
//TODO Auto-generated method stub
super.onDrawerSlide(drawerView, slideOffset);
mainView.setTranslationX(slideOffset * drawerView.getWidth());
mDrawerLayout.bringChildToFront(drawerView);
mDrawerLayout.requestLayout();
}
};
mDrawerLayout.setDrawerListener(actionBarDrawerToggle);
//Set the custom toolbar
if (toolbar != null){
setSupportActionBar(toolbar);
}
actionBarDrawerToggle.syncState();
}
}
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0"
>
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<application
android:name="com.example.myapp.app.AppController"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".Login"
android:label="@string/app_name"
android:windowSoftInputMode="stateVisible|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.myapp.MainActivity" >
</activity>
</application>
</manifest>
double possible de Cette Activité a déjà une barre d'action fourni par le décor de la fenêtre
OriginalL'auteur Rahul Batra | 2015-05-06
Vous devez vous connecter pour publier un commentaire.
Utilisation
<item name="windowActionBar">false</item>
au lieu de
<item name="android:windowActionBar">false</item>
à l'intérieur de votrestyle.xml
Error: No resource found that matches the given name: attr 'windowActionBar'.
Cette réponse vous sera utile: stackoverflow.com/questions/18429951/...
OriginalL'auteur Harsh Dattani
Lorsque vous utilisez
Theme.AppCompat.Light.NoActionBar
, vous pouvez supprimer les deux lignes suivantes (l'équivalent AppCompat versions sont ajoutés pour vous):windowNoTitle
etwindowActionBar
au lieu de cela, comme nous sommes dans AppCompat thème.c'est exactement ce que le
NoActionBar
versions de la AppCompat thème faire pour vous.J'ai été stupide qui ne l'ai pas écrit clairement. Je voulais dire que quand vous avez écrit deux lignes, au lieu d'écrire
android:windowNoTitle
vous devriez avoir écritwindowNoTitle
. Suis-je la corriger ?OriginalL'auteur ianhanniballake