2016-10-13 72 views
0

這裏是activity_main.xml中的文件: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> 

每當我添加了當前的TabItem的TabLayout裏面我得到了以下錯誤:

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將刪除所有此錯誤。最後,請注意,應用程序正常運行,在手機/模擬器上沒有任何錯誤。

感謝您的幫助!

+2

親切發表您的'MainActivity'代碼 – Max

+0

ü可以發佈您的'MainActivity.class'代碼 – Sourabh

+0

的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> 

看着在Android Devp website給出的代碼,我想只有文字或圖標,都可以在這裏給出的,而不是兩個。

試一試。

+0

請注意,您可以將圖標和文字添加到ItemTab –

+0

我已經使用自定義選項卡項目添加圖像和文本,不知道它是可能的直接。感謝那 –

相關問題