Android “如何实施材料设计”;全宽文本字段“;?

Android “如何实施材料设计”;全宽文本字段“;?,android,material-design,Android,Material Design,我想实现Material Design中的“全宽文本字段”,如下所示: 如何使用“材质设计库”执行此操作 在最新版本中,可用的库至少包括: com.android.support:design:23.0.1 com.android.support:appcompat-v7:23.0.1 com.android.support:support-v4:23.0.1 我从一个EditText开始,如下所示: <EditText android:id="@+id/receivers"

我想实现Material Design中的“全宽文本字段”,如下所示:

如何使用“材质设计库”执行此操作

在最新版本中,可用的库至少包括:

  • com.android.support:design:23.0.1
  • com.android.support:appcompat-v7:23.0.1
  • com.android.support:support-v4:23.0.1
我从一个
EditText
开始,如下所示:

<EditText
    android:id="@+id/receivers"
    android:layout_below="@+id/toolbar"
    android:layout_width="match_parent"
    android:padding="20sp"
    android:hint="Receivers"
    android:inputType="textMultiLine"
    android:gravity="top"
    android:layout_height="wrap_content" />

<EditText
    android:layout_height="match_parent"
    android:id="@+id/new_message_text"
    android:layout_below="@+id/receivers"
    android:layout_width="match_parent"
    android:padding="20sp"
    android:hint="@string/hint_new_message"
    android:inputType="textMultiLine"
    android:gravity="top" />

看起来是这样的

  • 有没有办法从库常量中获取padding(20sp)值
  • 如何删除EditText底部的行
  • 水平分离器从哪里来
文本字段的值 您可以使用任何自定义的可绘制引用,而不是主题提供的属性
?listDivider

附加说明 1)材料设计规范与appcompat-v7库中定义的实际值之间存在一些不一致

listPreferredItemHeight
应返回56dp,但返回64dp。类似地,listPreferredItemHeightLarge(在本例中未使用)返回80dp而不是72dp。您可以通过重新定义主题中的属性来解决此问题:

<item name="android:listPreferredItemHeight">56dp</item>
56dp

2)请勿将颜色资源直接用作分隔符。它的隐式高度和宽度等于-1。您需要一个可绘制的自定义形状。

@commonware抱歉,链接错误。编辑了这个问题。“全宽文本字段”在输入字段底部没有行。“如果它被定义为一个维度资源,那么是的”这就是我试图找到的。是吗?“这就是我想找到的。是吗?”--你得仔细翻找,看看你想要的东西是否在那里。即兴表演,看起来不像。对于我对
EditText
上的行感到困惑,我深表歉意。
listPreferredPaddingLeft
是打字错误吗?我在
com.android.support/appcompat-v7/23.0.1/res/values/values.xml
@SimonWarta中有
列表preferreditempaddingleft
,是的,这是一个打字错误。您所说的是正确的。@HusseinElFeky感谢您的确认,已修复。根据材料设计,文本的顶部和底部填充:20dp。因此,我认为垂直填充必须从16改为20dp。看起来“全宽度文本字段”得到了一些明确的额外填充,这是有意义的,因为行数很少(从)
android:divider="?listDivider"
android:showDividers="middle"
<item name="android:listPreferredItemHeight">56dp</item>