2016-12-07 15 views
0

私はエラーを取得しています:アンドロイド - 単一の活動で使用Theme.AppCompat

Unable to start activity ComponentInfo{NewChatActivity}: java.lang.IllegalStateException: 
You need to use a Theme.AppCompat theme (or descendant) with this activity. 

私はテーマを使用したいと思いますが、単一の活動でのTheme.AppCompatが、それは働いていない:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:theme="@style/AppTheme.Compat" 
    tools:context=".activity.NewChatActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_scrollFlags="scroll|enterAlways" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

      <include layout="@layout/content_contact" /> 

     </android.support.v7.widget.Toolbar> 

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


    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="?attr/actionBarSize"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/messageRecyclerView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:layout_marginLeft="@dimen/activity_horizontal_margin" 
      android:layout_marginRight="@dimen/activity_horizontal_margin" 
      android:layout_marginTop="@dimen/activity_horizontal_margin" 
      android:layout_above="@+id/btnSendMessage" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editTxtMessage" 
      android:layout_margin="@dimen/activity_horizontal_margin" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_toLeftOf="@+id/btnSendMessage" 
      android:layout_toStartOf="@+id/btnSendMessage" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/btnSendMessage" 
      android:layout_margin="@dimen/activity_horizontal_margin" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:tint="@android:color/black" 
      android:background="@android:color/transparent" 
      android:src="@android:drawable/ic_menu_send"/> 
    </RelativeLayout> 

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

それを使用することは可能ですか、またはアプリケーション全体で使用する必要がありますか?アプリケーション要素(AndroidManifest.xml)を置くと、アプリケーションの複数のレイアウトを編集する必要があり、それを回避しようとしています。

ありがとうございました。

+1

マニフェストであなたのアクティビティにテーマを宣言しましたか?例えば。 ? – BIW

+0

いいえ!私はXMLファイルでそれをやっていた!私はそれを試してみましょう、ミスター! – placplacboom

答えて

1

マニフェストにthe android:theme attributethe <activity> elementとすると、その1つのアクティビティのみに影響します。

これらのテーマにはいくつかのUIの違いがあるため、通常、アプリではTheme.AppCompatと他のストックテーマ(例:Theme.Material)を混在させません。

関連する問題