Android “如何实施材料设计”;全宽文本字段“;?
我想实现Material Design中的“全宽文本字段”,如下所示: 如何使用“材质设计库”执行此操作 在最新版本中,可用的库至少包括: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"
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>