Android API24以上Error inflating class android.support.design.widget.TabLayout

当将应用从API23升级到API24时,遇到TabLayout加载错误。通过在style中声明Theme.AppCompat主题,并在清单文件中设置application的AppCompatActivity风格,可以解决此问题。在API23上正常运行的代码在API24上出现错误,但上述调整后,API24也能正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在API23中使用了TabLayout,在升级到API24进行编译后,程序运行时出现了如下错误:
  

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo/com.example.demo.activity.ViewPagerActivity}: android.view.InflateException: Binary XML file line #106: Binary XML file line #11: Error inflating class android.support.design.widget.TabLayout

下面是我xml中TabLayout的配置:

        <android.support.design.widget.TabLayout
                   android:id="@+id/projecttabs"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:layout_below="@+id/tv_project"
                   app:tabGravity="fill"
                   app:tabIndicatorHeight="1dp"
                   app:tabSelectedTextColor="@color/black"
                   app:tabTextAppearance="@style/CustomTabTextAppearance"
                   app:tabTextColor="@color/gray" />

styles:

<!--tab样式-->
    <style name="CustomTabTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">10sp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">@color/white</item>
        <item name="textAllCaps">true</item>
    </style>

  注意:以上代码在API23中一切正常。在API24中运行时报错,需要使用Theme.AppCompat风格。
  
  下面看解决方法:
  
  1. style中声明:

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">

    </style>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- Customize your theme here. -->
        <!--<item name="android:windowNoTitle">true</item>-->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

  2. 清单文件中声明application风格如下:

    <application
        android:name="com.xx.android.application.App"
        android:allowBackup="true"
        android:icon="@mipmap/xx"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"

好了,经过以上两步就可以使用API24了。

效果如下:

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值