在实际设备上无法正确显示LinearLayout水平

时间:2019-02-25 15:39:05

标签: android android-linearlayout

我对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中的外观,这就是我需要的。 enter image description here

但这就是我总是出于未知原因而结束的事情。 enter image description here

我还要检查它是否只是因为长文本视图,而不是因为长文本视图。该视图在AS中是正确的,但是在某些实际设备上,我已经对其进行了测试。有人可以启发我,我正在处理LinearLayout水平一年,反复调整。

2 个答案:

答案 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" />