我正在尝试使用AppCompat将新的Android 5.0 Material Design Datepicker添加到我的5.0之前的应用程序中.我已经添加
compile "com.android.support:appcompat-v7:21.0.0"
Run Code Online (Sandbox Code Playgroud)
到我的build.gradle文件并将我的主题更新为:
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<style name="AppTheme.Base" parent="@style/Theme.AppCompat.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但Datepicker仍然如下所示:
而不是这样的:

任何人都可以告诉我如何让新的datepicker在5.0之前的设备上运行吗?
提前致谢.
我想在Buttons上使用涟漪效果.AppCompat v22.1为AppCompat着色添加了AppCompatButton和新功能.
我的布局:
<android.support.v7.widget.AppCompatButton
android:id="@+id/add_remove_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/primary"
android:textColor="@android:color/white"
android:text="Remove" />
Run Code Online (Sandbox Code Playgroud)
在我的API 22测试设备上,涟漪效应完美无缺,但我正在编写API 11,不幸的是backgroundTint需要API> = 21.如何在旧API版本上将涟漪效果设置为按钮?
我不得不在ActionBarActivity之前和现在从AppcompatActivity扩展我的Activity主题Theme.AppCompat.Light.Dialog,因为我的Base Activity扩展了这个.
但是现在有了新的appcompat v7(v22)库我的Activity开始显示标题栏,尽管我使用自定义样式的项目windowActionBar = false,android:windowNoTitle = true.但是在appcompat库升级之前没有这样的问题,标题栏没有显示.
如果我的活动扩展了FragmentActivity,一切都还可以,我明白也许我使用了一个糟糕的模式,我的对话活动从AppcompatActivity扩展但我想知道有没有办法删除标题栏?
上下文
使用AppCompat v7 21.0.0/21.0.2/21.0.3
问题
ToolBar的popupTheme不适用于ShareAction
工具栏上的样式:
<style name="MyActionBarStyle" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@color/green</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
Run Code Online (Sandbox Code Playgroud)
溢出菜单项正在使用popupTheme

另一方面,ShareAction没有收到popupTheme.经过一些测试后,我注意到它收到了应用程序:ToolBar的主题因此是黑暗的.
<item name="android:colorBackground">@color/white</item>
Run Code Online (Sandbox Code Playgroud)

为了获得ShareAction上的黑色文本,我尝试设置了许多属性,并通过设置"android:textColorPrimary"(在ToolBar主题上)我得到了我想要的但是我在ToolBar上的图标也采用了这种奇怪的颜色. .
菜单xml如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cycle="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/ic_share"
android:icon="@drawable/abc_ic_menu_share_holo_dark"
android:title="@string/media_share"
cycle:showAsAction="ifRoom"
cycle:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
<item
android:icon="@drawable/abc_ic_menu_share_holo_dark"
android:showAsAction="ifRoom"
android:title="br">
<menu>
<item
android:id="@+id/menuSortNewest"
android:title="Sort by newest" />
<item
android:id="@+id/menuSortRating"
android:title="Sort by rating" />
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我希望ShareAction和溢出都有popupTheme但事实并非如此
解决方法
我得到一个解决方法后,我会编辑这篇文章
参考:https://code.google.com/p/android/issues/detail? id = 87285 & thanks = 87285 & t = 1419254842
我有一个AppWidget,我想在Lollipop前设备上使用VectorDrawables.VectorDrawableCompat不能与我创建的RemoteViews一起使用.
为了保持我的应用APK大小,我不想为旧的API平台添加我的drawables的替代PNG版本.
我怎样才能做到这一点?
android android-appcompat remoteview android-support-library android-vectordrawable
根据视频说明,我无法在全屏模式下运行Android应用.当它试图运行时,应用程序崩溃并出现错误.
"You need to use a Theme.AppCompat theme (or descendant) with this activity
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.djsg38.hikerswatch">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
样式文件
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
可能有用的部分MainActivity
public class MainActivity extends AppCompatActivity {
Run Code Online (Sandbox Code Playgroud) 我曾经用改变AppCompat状态栏颜色actionBarStyle,并创建一个背景是我想要的颜色的样式.
现在,使用Material Design AppCompat,此方法不再起作用.
你能帮助我吗?谢谢.
我将从我想要实现的目标开始:构建此处提供的googlecast-manager示例:https://github.com/googlecast/GameManagerSamples 我按照以下说明操作:https://developers.google.com/cast/docs/ android_sender
首先我从github下载了该项目,然后使用Android SDK Manager下载了Android支持库和Google Play服务.然后在我的项目中,我转到"打开模块设置 - >添加",然后转到"Android SDK\extras\android\support\v7\appcompat"并添加它.
然后第一步确保它的工作是构建它.所以我右键单击appcompat - >"Compile Module Appcompat"但它失败并出现2个错误:
错误:(20,-1)android-apt-compiler:[appcompat] D:\ Android SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base.xml:20:错误:检索父级时出错for item:找不到匹配给定名称'android:Widget.Material.Button.Colored'的资源.
错误:(19,-1)android-apt-compiler:[appcompat] D:\ Android SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base_text.xml:19:错误:检索父项时出错for item:找不到与给定名称'android:TextAppearance.Material.Widget.Button.Inverse'匹配的资源.
对Google Play执行相同操作就像魅力一样.
我试图找到视频/其他类似问题,但它太复杂或不是我的问题.
这是appcompat的AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.support.v7.appcompat">
<uses-sdk android:minSdkVersion="9"
android:targetSdkVersion="19"/>
<application />
Run Code Online (Sandbox Code Playgroud)
Theme.AppCompat.Light.DarkActionBar未在styles.xml中进行编译.我compile 'com.android.support:appcompat-v7:25.1.0'在app模块中添加了
build.gradle.
我在谷歌搜索了解决方案.其中很多是关于更改Project的类路径.build.gradle但它显示相同的错误.
build.gradle
dependencies {
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:support-annotations:25.1.0'
compile 'com.android.support:cardview-v7:25.1.0'
compile 'com.android.support:recyclerview-v7:25.1.0'
// compile 'ch.acra:acra:4.5.0'
testCompile 'junit:junit:4.12'
}
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
versionCode = 146
versionName = "0.6.65"
}
Run Code Online (Sandbox Code Playgroud) 常量USE_FINGERPRINT是在API级别28弃用,我们应该用更通用USE_BIOMETRIC已在同一API级别被添加.
我在我的Manifest中交换这些常量,并且在调用时遇到错误FingerprintManagerCompat.from(context).isHardwareDetected().
错误是:
缺少必需的权限 - USE_FINGERPRINT
这是因为28.0.0-rc3支持v4 lib中的@RequiresPermission("android.permission.USE_FINGERPRINT")注释FingerprintManagerCompat.
这是我可以忽略的并继续使用新的权限吗?
android android-appcompat android-permissions android-9.0-pie