Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用appcompat-v7将材质主题应用于API版本19及以下版本_Android_Android 5.0 Lollipop_Android Support Library - Fatal编程技术网

Android 使用appcompat-v7将材质主题应用于API版本19及以下版本

Android 使用appcompat-v7将材质主题应用于API版本19及以下版本,android,android-5.0-lollipop,android-support-library,Android,Android 5.0 Lollipop,Android Support Library,我最近下载了Android Lollipop SDK,并更新了所有依赖项,修复了构建路径,并顺利导入了以下支持库: android-support-v7-appcompat android-support-v7-gridlayout android-support-v7-mediarouter android-support-v7-palette 我的应用程序使用蓝牙低能量,所以我的minSDK版本是18,targetSDK是最新的;二十一, 当我尝试使用以下xml应用Material主题(使用

我最近下载了Android Lollipop SDK,并更新了所有依赖项,修复了构建路径,并顺利导入了以下支持库:

android-support-v7-appcompat android-support-v7-gridlayout android-support-v7-mediarouter android-support-v7-palette

我的应用程序使用蓝牙低能量,所以我的minSDK版本是18,targetSDK是最新的;二十一,

当我尝试使用以下xml应用Material主题(使用appcompat-v7)时,会出现我的问题:


@颜色/材质\u蓝色\u 500
@颜色/材质\u蓝色\u 700
@颜色/材料\绿色\ A200

当我尝试运行此程序时,出现以下错误:

错误:未找到与给定名称匹配的资源(在“colorAccent”处,值为“@color/material\u green\u A200”)

通过谷歌搜索,我发现这个github存储库在3天前更新过:gist.github.com/eyecatchup/b5e564cfe11619cc3999

在那里,大多数材质设计颜色都已定义,所以我只是将其复制到主题的color.xml中

然后,尽管该行在xml中,我还是得到了以下错误:

错误:未找到与给定名称匹配的资源(在值为“@color/black”的“bright\u frommer\u material\u light”处)

无论如何,我删除了那一行,并成功地在我的手机上安装了应用程序。然而,主题仍然是全息的,而不是物质的

谁能告诉我我做错了什么?他们非常清楚地说我可以在低于5.0的版本中使用Material主题,并且我遵循了关于保持兼容性的说明


非常感谢您的帮助。

您必须创建一个新的项目,然后Id会自动生成appcompat_v7库,然后右键单击您的旧错误项目,单击属性,然后单击android并将appcompat_v7库添加到您的项目中。

事实证明,我只是将主题应用到我的自定义主题中values文件夹,而values-v11和values-v14主题xml保持不变

修复了这个问题,我通过更新我的活动将ActionBarActivity和片段管理器扩展到
getSupportFragmentManager()
管理器,而不是
getFragmentManager()
,从而运行了material主题

如果您在为ListView设置适配器时碰巧使用了getActionBar中的导航抽屉,则需要将ActionBar强制转换为SupportActionBar,如下所示:

private ActionBar getSupportActionBar() {
    return ((ActionBarActivity)getActivity()).getSupportActionBar();
}
        mDrawerListView.setAdapter(
            new ArrayAdapter<String>(getSupportActionBar()
            .getThemedContext(),
            R.layout.fragment_navigationdrawer_textview,
            android.R.id.text1, drawerOptions));
    mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
    return mDrawerListView;
并按照您通常希望的方式设置适配器:

private ActionBar getSupportActionBar() {
    return ((ActionBarActivity)getActivity()).getSupportActionBar();
}
        mDrawerListView.setAdapter(
            new ArrayAdapter<String>(getSupportActionBar()
            .getThemedContext(),
            R.layout.fragment_navigationdrawer_textview,
            android.R.id.text1, drawerOptions));
    mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
    return mDrawerListView;
mDrawerListView.setAdapter(
新的阵列适配器(getSupportActionBar()
.getThemedContext(),
R.layout.fragment\u导航抽屉\u文本视图,
android.R.id.text1,抽屉选项);
mDrawerListView.setItemChecked(mCurrentSelectedPosition,true);
返回mDrawerListView;

希望这能帮助任何和我有同样问题的人。祝你好运。

我已经将appcompat_v7库添加到我的项目中。我的项目目前没有错误,运行良好,唯一的问题是尽管使用了appcompat_v7材质主题,但主题仍然是Holo。在资源中添加名为“Material_green_A200”的颜色。。。