我有一个带有TextView的LinearLayout。问题是在Android 4上填充不能正常工作。我在HTC One X模拟器Android 4.4.2上测试应用程序
我的布局:
<LinearLayout
android:id="@+id/msg_body"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="12dp"
android:background="@drawable/chat_msg_bg"
android:elevation="2dp"
android:orientation="vertical"
android:padding="16dp"
android:paddingLeft="16dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/user_name"
app:layout_constraintTop_toBottomOf="@+id/user_name"
app:layout_constraintVertical_bias="0.0">
现在看起来像这样:
左右填充正在工作,但顶部和底部不起作用。什么可能导致这个问题,有没有办法处理这个?我试图以编程方式设置填充,但没有效果。在其他操作系统版本和设备上,这可以正常工作。
UPD:它应该如何:
答案 0 :(得分:2)
首先尝试删除android:padding="16dp"
。
如果这不起作用,请尝试将填充提供给TextView
而不是LinearLayout
。
答案 1 :(得分:1)
尝试实用地填充:
layout.setPadding(left,top,right,bottom);
这将以px作为参数。从dp转换为px:
Resources r = mContext.getResources();
int px = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
dpmeasure,
r.getDisplayMetrics()
);
只需从XML中删除所有填充。
或强>
在线性布局中为textview添加边距。并删除填充 线性布局。
答案 2 :(得分:0)
在android:padding="16dp"
的{{1}}中设置TextView
。