ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

材质设计:在哪里放置Android样式的高程?

2019-08-30 03:37:22  阅读:166  来源: 互联网

标签:android android-styles


我想在我的一些应用程序样式中设置项目高程.现在海拔只有21和更高,没有支持库,所以我的自然倾向是创建一个样式-v21 xml并将其放在那里:

<style name="Widget.MyApp.Drawer" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:elevation">4dp</item>
</style>

这个问题是我对常规styles.xml文件中的Widget.MyApp.Drawer所做的任何更改都将被完全覆盖.我想要的是将高程添加到我为styles.xml中列出的此样式的v21版本所做的样式更改列表的底部.

所以我开始创建基本样式,我在视图中使用的样式继承自:

<style name="BaseListElement">
    <item name="android:background">@drawable/listitem_background</item>
    <item name="android:layout_height">@dimen/list_item_height</item>
</style>

<style name="BaseListElement.ListItem">

</style>

我在styles.xml中将样式留空,在styles-v21中,我添加了高程并且它有效.

但是,当我想使用一些高级样式时,这会变得有点棘手:

<style name="BaseListElement">
    <item name="android:background">@drawable/listitem_background</item>
    <item name="android:layout_height">@dimen/list_item_height</item>
</style>

<style name="BaseListElement.BaseItem">
    <item name="android:padding">@dimen/list_item_padding</item>
</style>

<style name="Widget.MyApp.ListItem" parent="@style/BaseListElement.BaseItem">

</style>

<style name="BaseListElement.BaseHeader">

</style>

在这种情况下,BaseItem只是一种从BaseListElement继承的样式,BaseHeader等样式也从它继承.你可以看到,这有点荒谬.

我是否想过这个?我看到它的方式我有三个选择:

1)继续原样,感觉像个白痴

2)在BaseListElement级别上,创建一个带有一些愚蠢名称的子样式,这个名称是我应用高程的点,然后(希望)逐渐渗透到所有孩子.然而,只要基地的v21孩子之间有区别,这就不行了.

3)只需将android:elevation引入styles.xml文件(不要使用v21文件)并在元素上放置一个ignore标志.我这里只有5.0个设备,所以如果这会导致旧版本崩溃,我现在无法轻松测试.

有什么想法吗?

解决方法:

要完成这样的事情,您可以在styles.xml和syles-v21.xml中创建一个BaseListElement.BaseItem,第一个没有高程,第二个没有高程.然后从BaseListElement.BaseItem扩展Widget.MyApp.ListItem,它应该在v21中更新以使用高程.

styles.xml

<style name="BaseListElement.BaseItem">

</style>

<style name="Widget.MyApp.ListItem" parent="@style/BaseListElement.BaseItem">

</style>

款式 – v21.xml

<style name="BaseListElement.BaseItem">
    <item name="android:padding">@dimen/list_item_padding</item>
</style>

方法3你可以安全地实现如下:

<item name="android:elevation" tools:ignore="NewApi">4dp</item>

标签:android,android-styles
来源: https://codeday.me/bug/20190830/1765602.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有