我有一个LinearLayout,里面有一个TextView。问题是填充在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:应该如何:
发布于 2018-03-27 00:51:15
尝试以务实的方式提供填充:
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中删除所有填充即可。
或
在线性布局中为文本视图添加页边距。并去除线性布局中的填充物。
发布于 2018-03-27 00:53:30
先尝试删除android:padding="16dp"
。如果这样做不起作用,请尝试将填充给TextView
而不是LinearLayout
。
发布于 2018-03-27 00:52:02
在android:padding="16dp"
中设置TextView
中的Layout.xml
。
https://stackoverflow.com/questions/49508133
复制