使用material design组件遇到的一些问题

在Android项目中集成Material Design的TabLayout时遇到了错误:Error inflating class android.support.design.widget.TabLayout。问题解决方法是确保使用AppCompat主题,并处理自定义titlebar与主题之间的冲突,通过在自定义主题中设置windowActionBar为false来消除错误。

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

在项目中需要使用materialdesign包中的tabLayout控件,正常在xml中加入tabLayout。

    <android.support.design.widget.TabLayout
        android:id="@+id/landmark_list_tablayout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/landmark_tab_layout_height"/>

运行代码报错如下:

Error inflating class android.support.design.widget.TabLayout
后来发现如果要使用material design包的控件,theme要使用AppCompat的主题。于是将styles中的主题改为:

<style 
     name="FBaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowTitleBackgroundStyle">@style/FTitlebarBackground</item>
    <item name="android:windowTitleSize">@dimen/f_titlebar_height</item>
    <item name="android:background">@null</item>
    <item name="android:windowNoTitle">false</item>
</style>

运行,这次还是crash,不过刚才的问题消失了,新的错误是:
You cannot combine custom titles with other title features。

原来在项目中使用了自定义的titlebar:

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.f_titlebar);

使得我们自定义的titlebar和使用的主题发生冲突,最后在自定义的主题中增加false
解决问题:

<style name="FBaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowTitleBackgroundStyle">@style/FTitlebarBackground</item>
    <item name="android:windowTitleSize">@dimen/f_titlebar_height</item>
    <item name="android:background">@null</item>
    <item name="android:windowNoTitle">false</item>
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值