TL; DR – 我正在使用每个单元格上具有wrap_content宽度的水平回收器视图,并且除了三星设备之外,它正在按预期工作.
我的list_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scope_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_scope_state_normal"
android:clickable="true"
android:focusable="true"
android:padding="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp">
<TextView
android:id="@+id/scope_text"
android:layout_centerInParent="true"
android:background="?attr/selectableItemBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
tools:text="2/2017"/>
</RelativeLayout>
现在,这是使用此代码在samsung s3上的外观:
如果我将list_item.xml中相对布局的宽度更改为80dp,这就是它的样子:
现在,正如你可以看到文本有不同的宽度和固定的宽度我在长字中缺少字母,wrap_content应根据文本视图宽度设置宽度,但在samsungs这不起作用,它只是拉伸布局我错过了什么吗?
解决方法:
您可以在注释中删除Eugen所说的包装RelativeLayout,并使用recyclelerview的内部系统ItemDecorator代替绘制漂亮的背景.
这应该修复你的用户界面
此外,您可以使用Android Monitor转储视图层次结构,并查看S3的实际值