2016-10-13 4 views
0

にキャストすることはできませんが、activity_main.xmlファイルです:私はTabLayout内の現在のTabItemを追加するたびにandroid.support.v7.widget.AppCompatTextViewはここandroid.widget.ImageView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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:orientation="vertical" 
    tools:context="com.issaayoub.materialtest.MainActivity"> 

    <include 
     android:id="@+id/app_bar" 
     layout="@layout/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawer_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:id="@+id/activity_main" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tabLayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/colorPrimary" 
       android:elevation="4dp"> 

       <android.support.design.widget.TabItem 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:icon="@drawable/an" 
        android:text="@string/bird1" /> 

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

      <android.support.v4.view.ViewPager 
       android:id="@+id/viewpager" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_below="@id/tabLayout"> 

      </android.support.v4.view.ViewPager> 
     </RelativeLayout> 

     <fragment 
      android:id="@+id/fragment_navigation_drawer" 
      android:name="com.issaayoub.materialtest.NavigationDrawerFragment" 
      android:layout_width="@dimen/navigation_drawer_width" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      app:layout="@layout/fragment_navigation_drawer" 
      tools:layout="@layout/fragment_navigation_drawer" /> 

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

私は、次のエラーを得ました:

android.support.v7.widget.AppCompatTextView cannot be cast to android.widget.ImageView

私は、次しまったレンダリング問題の詳細を開く:

java.lang.ClassCastException: android.support.v7.widget.AppCompatTextView cannot be cast to android.widget.ImageView 
    at android.support.design.widget.TabLayout$TabView.update(TabLayout.java:1675) 
    at android.support.design.widget.TabLayout$TabView.setTab(TabLayout.java:1627) 
    at android.support.design.widget.TabLayout.createTabView(TabLayout.java:927) 
    at android.support.design.widget.TabLayout.newTab(TabLayout.java:562) 
    at android.support.design.widget.TabLayout.addTabFromItemView(TabLayout.java:481) 
    at android.support.design.widget.TabLayout.addViewInternal(TabLayout.java:970) 
    at android.support.design.widget.TabLayout.addView(TabLayout.java:960) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:862) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) 
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966) 
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533) 
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$53(RenderTask.java:659) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

はSOMでしたがどうぞ、TabItemの問題点を強調してください。

TabItemを削除すると、このエラーがすべて削除されます。最後に、アプリケーションが電話/エミュレータでエラーなしで正常に動作していることに注意してください。

ありがとうございました! Android Devp websiteで指定されたコードを見て

+2

投稿あなたの 'MainActivity'コード – Max

+0

uは私が使用したもの以来 – Sourabh

+0

MainActivity.classは効果がありません、あなたの' MainActivity.class'コードを投稿することができます行うには:TabItemを追加し、エラーが表示された後、TabItemを削除し、エラーが削除されます。したがって、これはMainActivityクラス内のJavaコードとは関係ありません。 –

答えて

1

何も問題ありません。 Android Studioを再起動してエラーが削除されました。
テキストとアイコンの両方を追加できることにご注意ください。ここ は、アプリケーションのレイアウトのための画像です:親切

enter image description here

0
<android.support.design.widget.TabLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 

    <android.support.design.widget.TabItem 
     android:text="@string/tab_text"/> 

    <android.support.design.widget.TabItem 
     android:icon="@drawable/ic_android"/> 

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

、私は両方とも、テキストのみまたはアイコンがここに与えることができないと思います。

試してみてください。

+0

アイコンとテキストの両方をItemTabに追加することができます。 –

+0

イメージとテキストを追加するためにカスタムタブ項目を使用しましたが、それが直接可能であるかどうかはわかりませんでした。ありがとう –

関連する問題