Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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
Java 安卓材料设计与制造;向后兼容性_Java_Android - Fatal编程技术网

Java 安卓材料设计与制造;向后兼容性

Java 安卓材料设计与制造;向后兼容性,java,android,Java,Android,我目前正在Android Studio中编写一个应用程序。只有我的第二个应用程序是我自己编写的。由于我想支持API 16直到API 22,并且想拥有材料设计接口,我发现我需要AppCompact来支持材料设计

我目前正在Android Studio中编写一个应用程序。只有我的第二个应用程序是我自己编写的。由于我想支持API 16直到API 22,并且想拥有材料设计接口,我发现我需要AppCompact来支持材料设计 然而,出现了一些问题第一个问题:它在这个时候崩溃了

public class Example extends ActionBarActivity {
// changed it to: 
public class Example extends Activity {
现在我的Nexus6一切正常。但是,由于某种原因,我的文本是不可见的,因为我使用了原色、原色、深色和强调色创建了一个新的styles.xml

其次,由于我必须删除.java文件中的actionbar活动,actionbar在API 21以下的设备上消失了。如何重新添加它?还是不可能?因为互联网上的信息对于实现最新的东西来说大多已经过时,所以很难找到它是如何工作的


非常感谢您提前

您应该将您的活动扩展到
AppCompatActivity
,这是谷歌最新推荐的活动。ActionBarActivity已弃用

您应该使用
工具栏
而不是actionbar,这也是一种材质设计模式。关于如何使用它,您可以在此处找到:


如果您使用的是最新的android设计支持库,则可以使用AppBarLayout而不是默认的操作栏。有关使用新设计支持库的详细指南,请参见

show crash stacktraceFirst问题通过更改为“活动”解决。然而,它导致了另一个问题。我只是希望能对第一个厄洛尔的行为做出一些解释;这在互联网上是众所周知的,但似乎没有任何有效的解释。谢谢!我会深入研究的。所以为了支持API 16到22,我必须使用AppCompat?即使是API 21和22,因为他们支持它而不使用AppCompact。。。这太令人困惑了。AppCompatActivity与min API 7兼容,因此不必担心兼容性。在这里,您可以找到有关兼容性的更多详细信息:以及AppCompatActivity用法的示例,感谢您提供的资源和注释。我会深入调查每件事。然而,是否有任何在线资源可以提供关于什么时候事情被谷歌弃用和推荐做法的信息?让你的android studio和android sdk保持最新。每个不推荐使用的方法/类都将被标记。只需按住ctrl+q键即可阅读文档。最好的查找方法是尝试。只需在Android Studio中使用min SDK作为21创建一个项目。您会发现MainActivity扩展到Activity,这意味着您没有导入任何compat库,因为min SDK 21不需要它们。但这种方法实际上不是很有用,你的应用程序应该使用尽可能少的API。这就是compat库存在的原因,它们提供了本地库的几乎所有功能。问题是你想在应用程序中使用什么功能,而compat库中没有。如果没有,就不要离开。他们是最好的部分。