我对LinearLayout在水平方向上非常困惑,因为它始终无法在窄宽度的屏幕设备中正确显示。这是我的代码。
<LinearLayout
android:id="@+id/otherLinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal"
android:visibility="visible">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:padding="20dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/availableAction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="@string/add"
android:textColor="@color/icon_selected"
android:textSize="12sp" />
<ImageView
android:id="@+id/addFriendsBtn"
android:layout_width="50dp"
android:layout_height="50dp"
android:contentDescription="@string/welcome"
android:src="@drawable/ic_icons8_add_user" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:padding="20dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:enabled="false"
android:text="@string/report_label"
android:textColor="@color/icon_selected"
android:textSize="12sp" />
<ImageView
android:id="@+id/reportBtn"
android:layout_width="50dp"
android:layout_height="50dp"
android:contentDescription="@string/welcome"
android:src="@drawable/icons8_spam" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:padding="20dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/followAction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="@string/follow"
android:textColor="@color/icon_selected"
android:textSize="12sp" />
<ImageView
android:id="@+id/followBtn"
android:layout_width="50dp"
android:layout_height="50dp"
android:contentDescription="@string/welcome"
android:src="@drawable/ic_follow" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:padding="20dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:enabled="false"
android:text="@string/msg"
android:textColor="@color/icon_selected"
android:textSize="12sp" />
<ImageView
android:id="@+id/msgBtn"
android:layout_width="50dp"
android:layout_height="50dp"
android:contentDescription="@string/welcome"
android:src="@drawable/ic_icons8_weixin_100" />
</LinearLayout>
</LinearLayout>
我还要检查它是否只是因为长文本视图,而不是因为长文本视图。该视图在AS中是正确的,但是在某些实际设备上,我已经对其进行了测试。有人可以启发我,我正在处理LinearLayout水平一年,反复调整。
答案 0 :(得分:0)
布局更改取决于设备分辨率和屏幕尺寸。 请访问:
https://developer.android.com/training/multiscreen/screensizes
或:
您需要在文本视图中添加以下代码:
android:autoSizeTextType="uniform"
android:maxLines="1"
android:ellipsize="end"
答案 1 :(得分:0)
您正在将换行内容用于textViews。如果文本很长,视图也会变长,则可以减小XML中的textViews的文本大小,并希望文本可以容纳1行,或者可以使用autofittextview-“自动调整大小的TextView文本以使其完全适合其边界。”
Heie是您使用此库的方式:
在您的gradle中添加以下实现:
implementation 'me.grantland:autofittextview:0.2.1'
现在添加您的textView:
<me.grantland.widget.AutofitTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="12sp"
app:minTextSize="8sp" />