0

我面临一个问题,一旦文本变大,我的布局就会超出范围TextViews

以下是代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Home" >

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/call_log_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="#00ccff"
            android:clickable="true"
            android:padding="20dp" >

            <TextView
                android:id="@+id/textView19"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="@string/call_log"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="#ffffff" />
        </LinearLayout>

        <RelativeLayout
            android:id="@+id/relativeLayout4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/call_log_layout"
            android:layout_alignParentRight="true"
            android:layout_marginTop="10dp"
            android:background="#993399" >

            <TextView
                android:id="@+id/recent_activities_titles"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:text="@string/recent_activities"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="#ffffff" />

            <TableLayout
                android:id="@+id/recent_activities_table"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/recent_activities_titles" >

                <TableRow
                    android:id="@+id/r_new_lead_row"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dp" >

                    <TextView
                        android:id="@+id/textView20"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="5dp"
                        android:text="@string/r_new_lead"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />

                    <TextView
                        android:id="@+id/new_lead_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:text="Michell"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />
                </TableRow>

                <TableRow
                    android:id="@+id/r_new_account_row"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dp" >

                    <TextView
                        android:id="@+id/textView21"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="5dp"
                        android:text="@string/r_new_account"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />

                    <TextView
                        android:id="@+id/r_new_account_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:text="Donna"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />
                </TableRow>

                <TableRow
                    android:id="@+id/tableRow13"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dp" >

                    <TextView
                        android:id="@+id/textView22"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="5dp"
                        android:text="@string/r_new_event"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />

                    <TextView
                        android:id="@+id/textView23"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:text="Meeting with some people I have never seen befpre"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />
                </TableRow>
            </TableLayout>
        </RelativeLayout>
    </RelativeLayout>

</ScrollView>

</RelativeLayout>

如您所见,有很多嵌套布局,这是因为您只看到大规模程序的一部分。所以嵌套布局不是问题。

textView23中,如果我输入一个像“会议”这样的小文本,那么 UI 输出看起来就是这样。

在此处输入图像描述

这是正确的,也是我需要的输出。

但是,如果我把一个大文本放进去,这就是输出的样子

在此处输入图像描述

如您所见,它超出了范围,甚至超过了其他布局的空间。不仅对于textview23,同样的问题也会发生在其他textviews人身上。

现在我的问题是,无论文本有多长,我怎样才能将布局保留为第一张图片?

Max WidthTextView 的属性可能不是最好的答案,因为这是针对多个屏幕的,然后会产生很多问题。

也许,如果文本太长,选框它?还是仅显示文本视图布局可以显示的内容,并在用户向左滑动文本视图时显示其余部分?还有什么办法吗?我不知道如何使这些工作。

4

3 回答 3

1

由于您希望它适用于多种分辨率和尺寸,

更好的方法是限制文本长度并在最后显示选取框。

像这样的东西

android:maxLength="10" 
android:ellipsize="marquee"
于 2013-10-29T12:26:57.933 回答
0

这是因为你已经把你的宽度属性 - wrap_content

首先定义一个固定的宽度,比如 100dp put property maxLine = 1, ellipsize = end

例如,在您的代码中:-

<TextView
                    android:id="@+id/textView23"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Meeting with some people I have never seen befpre"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#ffffff"
                    android:textSize="12sp" />

用这个 :-

<TextView
                    android:id="@+id/textView23"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="Meeting with some people I have never seen befpre"
                    android:ellipsize="end"
                    android:maxLines="1"    
                    android:singleLine="true"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#ffffff"
                    android:textSize="12sp" />

ellipsize 将在屏幕之间的某个点放置“...”,如果您的文本大于 textview 的指定宽度,并且“...”之后的文本将被切掉。

于 2013-10-29T11:54:04.867 回答
0

尝试这个..

在您的ScrollView删除RelativeLayout替换为LinearLayout

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
         >

//Your Remaining Content

</LinearLayout>

那么你的 RelativeLayout relativeLayout4

作为

<RelativeLayout
            android:id="@+id/relativeLayout4"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/call_log_layout"
            android:layout_alignParentRight="true"
            android:layout_marginTop="10dp"
            android:background="#993399" >
于 2013-10-29T11:36:07.517 回答