我有一个3个组件的布局完美对齐,只要用户不改变Android手机显示设置中的字体大小... 发生这种情况,UI元素无法正确对齐。我最好的猜测是它与布局权重有关。
正如您所看到的,CSR提及会略低于......
<LinearLayout
android:id="@+id/r"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/div"
android:layout_marginBottom="3dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="3dp"
android:background="@color/nliveo_white"
android:padding="@dimen/pad">
<LinearLayout
android:id="@+id/rec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/recshape"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Direct Mentions"
android:textColor="#ffffff"
android:textSize="@dimen/txt_sz" />
<TextView
android:id="@+id/dir"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:gravity="center"
android:text="164"
android:textColor="#ffffff"
android:textSize="30dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/rec2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rec2shape"
android:orientation="vertical"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Industry Mentions"
android:textColor="#ffffff"
android:textSize="@dimen/txt_sz" />
<TextView
android:id="@+id/idm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center"
android:text="30"
android:textColor="#ffffff"
android:textSize="30dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/rec3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rec3shape"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:phoneNumber="false"
android:text="CSR Mentions"
android:textColor="#ffffff"
android:textSize="@dimen/txt_sz" />
<TextView
android:id="@+id/csr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center"
android:text="14"
android:textColor="#ffffff"
android:textSize="30sp" />
</LinearLayout>
答案 0 :(得分:0)
如果文字大小是在&#39; sp&#39;这是一种正常的行为。 看一下docs中SP的定义。
与比例无关的像素 - 这就像dp单位,但它也是 按用户的字体大小首选项缩放。建议你使用 指定字体大小时,此单位将进行调整 屏幕密度和用户的偏好。
您可以使用&#39; dp&#39;而是取决于你的逻辑。
答案 1 :(得分:0)
这是由于定义文本大小时使用的单位。
我猜你的维度由@ dimen / txt_sz定义在sp中,就像蓝色方块的数量一样,你可以看到那些只是对用户改变作出反应的那些。
将文字大小更改为sp,所有内容都应修复。
与比例无关的像素(sp)这与dp单位类似,但它也可以根据用户的字体大小首选项进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户的偏好调整它们。