解决You need to use a Theme.AppCompat theme (or descendant) with this activity.

原创 2016年06月02日 00:53:20
需要定义一个半透明的activity,在manifest中添加 android:theme="@android:style/Theme.Translucent" 
结果报错"You need to use a Theme.AppCompat theme (or descendant) with this activity." 由于我的主题设置为
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">,猜想是不是这个原因造成的(没有去验证),网上的很多方法是设置直接
继承 Activity。
我查了下Theme.Translucent的源码,为:
<style name="Theme.Translucent">
    <item name="windowBackground">@color/transparent</item>
    <item name="colorBackgroundCacheHint">@null</item>
    <item name="windowIsTranslucent">true</item>
    <!-- Note that we use the base animation style here (that is no
         animations) because we really have no idea how this kind of
         activity will be used. -->
    <item name="windowAnimationStyle">@style/Animation</item>
</style>
根据源码我在style.xml中自定了<style name="Theme.AppCompat.Translucent">,将源码中的item复制过去:
<style name="Theme.AppCompat.Translucent">
    <item name="windowBackground">@color/transparent</item>
    <item name="colorBackgroundCacheHint">@null</item>
    <item name="windowIsTranslucent">true</item>
    <item name="windowAnimationStyle">@style/Animation</item>
</style>
结果报错:No resource found that matches the given name: attr 'colorBackgroundCacheHint'.
          No resource found that matches the given name: attr 'windowAnimationStyle'.
          No resource found that matches the given name: attr 'windowBackground'.
          No resource found that matches the given name: attr 'windowIsTranslucent'.
后来发现复制的<item name="windowBackground">@color/transparent</item>如果用快捷键去关联生成的是:
<item name="android:windowBackground">@android:color/transparent</item>,最后修改为:
<style name="Theme.AppCompat.Translucent">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
程序运行通过。通过这个说明其他的定义主题出现的类似问题,都可以这样解决。

Android Lint 检查规则列表

英文原文: http://tools.android.com/tips/lint-checks 这里的Android Lint所检查规则列表是从ADT21中得来的默认的,在Android S...
  • qq_29134495
  • qq_29134495
  • 2016年05月24日 09:30
  • 1447

Spring Boot 入门笔记

Spring Boot 入门 Build systems: Maven | Gradle | Ant | Starter POMs Best practices: Code Structure | @...
  • xiaoyu90520
  • xiaoyu90520
  • 2016年07月19日 20:21
  • 3385

AppBarLayout源码解读

AppBarLayout源码解读 相关知识点 ActionBar&ToolBar&AppbarLayout AppBarLayout作用 AppBarLayout&Behavior&Coordin...
  • Dnnis
  • Dnnis
  • 2016年07月28日 09:55
  • 1285

you need to use a theme.appcompat theme (or descendant) with this activity 解决办法

当你想隐藏 Androidmanifest.xml android:n
  • xuqingfeng77
  • xuqingfeng77
  • 2015年05月28日 11:01
  • 7789

You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法

当我的MainActivity继承自v7包中的ActionBarActivity或者AppCompatActivity时,如果在style.xml文件中指定MainActivity所使用的样式如下: ...
  • zxm317122667
  • zxm317122667
  • 2016年03月25日 23:40
  • 14060

异常IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

在项目中遇到了这样一个问题,今天解决了,记录下来并且与大家共勉。。。 我先说我的需求,, 我要将欢迎也设置成全屏,并且没有标题栏、和状态栏,,然后我就出现了这个问题: java.lang.Ill...
  • qq_35534596
  • qq_35534596
  • 2016年12月26日 13:41
  • 189

You need to use a Theme.AppCompat theme (or descendant) with this activity.

错误描述为: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) wit...
  • u014038534
  • u014038534
  • 2015年04月26日 15:44
  • 343

You need to use a Theme.AppCompat theme (or descendant) with this activity

搜索错误如下: You need to use a Theme.AppCompat theme (or descendant) with this activity java.lang.Run...
  • qq_21445563
  • qq_21445563
  • 2016年09月27日 13:39
  • 969

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a...
  • qq_27816307
  • qq_27816307
  • 2017年02月16日 11:10
  • 273

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a

微信支付它给的WXPayEntryActivity主题改错了java.lang.RuntimeException: Unable to start activity ComponentInfo{包名/...
  • qq_32519693
  • qq_32519693
  • 2017年06月08日 17:18
  • 978
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决You need to use a Theme.AppCompat theme (or descendant) with this activity.
举报原因:
原因补充:

(最多只允许输入30个字)