我在小屏幕三星设备上进行文字换行时遇到问题。在S4等其他手机上一切都还可以。
让我们看一下屏幕:
纠正一个(HTC Desire Z):
不正确(Samsung S4 Mini):
我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_launcher_web"
android:layout_marginRight="334dp"
android:layout_marginEnd="334dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_below="@+id/tool_bar" />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/Rel1"
android:layout_alignBottom="@+id/imageView"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
<TextView
android:maxLines="100"
android:scrollHorizontally="false"
android:singleLine="true"
android:ellipsize="end"
android:textSize="22sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:id="@+id/AppName"
android:layout_marginTop="130dp"
android:layout_marginRight="16dp" />
<TextView
android:textSize="18sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/created"
android:id="@+id/Created"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/AppName"
android:layout_centerHorizontal="true" />
<TextView
android:textSize="22sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ms"
android:id="@+id/MS"
android:layout_gravity="center_horizontal"
android:layout_below="@id/Created"
android:layout_centerHorizontal="true" />
<TextView
android:textSize="20sp"
android:autoLink="web"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/home_page"
android:id="@+id/textView"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/MS"
android:layout_centerHorizontal="true" />
</RelativeLayout>
你能告诉我它为什么这样呈现吗?
答案 0 :(得分:1)
抛弃Relative Layout
。它不适合这种类型的布局。
使用水平LinearLayout
替代主容器。将屏幕分为两部分,imageView
设置宽度和高度,另一个LinearLayout
(垂直),宽度设置为0dp,layout_weight
设置为1.将垂直部分填充为4 TextView
并将它们置于中心位置。要确保文字可见,请致电
.setEllipsize(TextUtils.TruncateAt.MARQUEE);
.setSingleLine(true);
.setMarqueeRepeatLimit(2);
.setSelected(true);
在TextView
上,让它们滚动。
这适用于所有类型屏幕的设备,但是如果你想这样,你应该能够为小屏幕设计特殊类型的xml。