设计指南 - 尺寸不匹配

4

我正在研究谷歌设计准则,但在我的应用程序中实现其中的一些部分时遇到困难。

例如:列表(多行)-文字附带头像

尺寸:

主要文本字体:Roboto Regular 16sp
次要文本字体:Roboto Regular 14sp
平铺高度:72dp
左侧头像内边距:16dp
文本左侧内边距:72dp
文本上下内边距:20dp

准则规定,具有头像和主/次要文本的列表项应具有20dp的顶部/底部文本内边距,并且视图的高度应为72dp。 如果我按照上面的内容来实现,将会得到以下XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="72dp"
    android:background="#FFF">

    <TextView
        android:id="@+id/primary_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif"
        android:paddingLeft="72dp"
        android:paddingRight="16dp"
        android:paddingTop="20dp"
        android:singleLine="true"
        android:text="Primary text"
        android:textSize="16sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/primary_text"
        android:fontFamily="sans-serif"
        android:paddingBottom="20dp"
        android:paddingLeft="72dp"
        android:paddingRight="16dp"
        android:singleLine="true"
        android:text="Secondary text with preview of further content"
        android:textSize="14sp" />

</RelativeLayout>

这是在图形布局编辑器中的显示效果: graphical layout preview 可以看到,次要文本被截断了。当我在设备上查看时,情况会变得更糟: real device 我的问题是:这是又一个谷歌的“什么鬼”问题,还是我有什么误解?
请注意:“只需将高度增加到X dp,您的问题就解决了”对我来说不是足够的答案,因为指南对这些大小非常具体。

1
我理解你的感受。我工作中的UX团队试图在这些指南上过于原教旨主义。可以找到两个材料设计指南,一个是通用的http://www.google.de/design/spec/material-design/introduction.html,另一个是安卓的https://developer.android.com/design/material/index.html。在我的看法中,如果严格遵循这两个指南,都会得到奇怪的结果(或者我们没有正确地遵循它们,我不知道)。我尽可能地遵循指南,但如果它们对我的屏幕/视图不起作用,我也不介意偏离它们。 - fweigl
sp中的字体大小和dp中的固定标题高度,这不可能起作用。 - Suau
@Su-AuHwang,我也认为固定高度不太好——但是,这不是指南所说的吗?(顺便说一句:对于文本使用sp,对于其他所有内容使用dp是完全可以的)。 - user3420815
@user3420815 当父视图设置为“wrap_content”或可滚动时,它是可以正常工作的。但当父视图具有固定的高度(例如tileheight)时,它就无法正常工作了。为了证明我的观点,请前往设备设置>辅助功能>视觉>字体大小,并将其设置为大号或巨型,现在再次检查上面的示例项目,看看你的布局如何消失了。(您的设备设置菜单可能略有不同)。指南是一个很好的起点,很遗憾它没有完全考虑周全,但我会保持字体大小,只需使用“wrap_content”来设置高度。 - Suau
1个回答

0
这是因为您将父元素的高度设置为72dp。
android:layout_height="72dp"

如果您想要一个固定的高度,可以将layout_height属性设置为"wrap_content",但是出于某些原因需要不同屏幕使用不同的布局。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接