我有RelativeLayout
个TextView
个,center
对齐,另一个end
对齐,
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_marginEnd="@dimen/size_10dp"
android:layout_marginStart="@dimen/size_10dp">
<TextView
android:id="@+id/title_count_text"
fontPath="fonts/title_bold.ttf"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_alignParentEnd="true"
android:layout_gravity="center"
android:background="@color/background"
android:ellipsize="end"
android:gravity="center|center_vertical"
android:maxLines="1"
android:text="(0)"
android:paddingLeft="@dimen/size_5dp"
android:paddingStart="@dimen/size_5dp"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/title_text"
fontPath="fonts/title_bold.ttf"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="This is a Sample Test"
android:textAlignment="center"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
</RelativeLayout>
看起来像这样,请找到下面的图片,
它的工作正常,文字长度很短,但是如果我增加文字长度,它会与计数器文本重叠,显然title_text
会在title_count_text
之后呈现,
但是,如果我将android:layout_toLeftOf="@+id/title_count_text"
属性添加到title_text
并更改宽度以匹配父级,则使此TextView中心对齐。 title_text
将失去中心引力。
看起来像这样,请找到下面的第二个附件
虽然它可能不可见,但是它现在向右移动计数器文字的宽度,
我想要实现的是保留title_text
的中心对齐方式,当文本长度更大并且到达计数器文本视图的开头时,它应该剪切文本并附加...
到最后,
任何形式的帮助都将完全受到赞赏,
由于
TL:DR不仅中心对齐,还需要在遇到计数器文本视图时剪切,如果文本长度更长。
答案 0 :(得分:1)
<TextView
android:id="@+id/title_text"
android:layout_toLeftOf="@+id/title_count_text"
android:layout_alignParentLeft="true"
fontPath="fonts/title_bold.ttf"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="This is a Sample Test"
android:textAlignment="center"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
我在您的第二个文字视图中添加了以下两行,以获得您描述的行为:
android:layout_toLeftOf="@+id/title_count_text"
android:layout_alignParentLeft="true"
您可能需要使用ellipsize设置。
答案 1 :(得分:1)
如果您愿意,删除相对布局的填充,并将填充添加到 title_text Textview
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="60dp"
>
<TextView
android:id="@+id/title_count_text"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_alignParentEnd="true"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="center|center_vertical"
android:maxLines="1"
android:text="(0)"
android:paddingLeft="@dimen/size_5dp"
android:paddingStart="@dimen/size_5dp"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:padding="16dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="This is a Sample Test wehatb the are u dongibng wjkl"
android:textAlignment="center"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
</RelativeLayout>
答案 2 :(得分:0)
正如我在上面的评论中所提到的,使用宽度为LinearLayout
的{{1}},方向matchparent
。
内部线性布局采用2个文本视图,第1 horizontal
宽度0dp和权重1,第2 TextView
宽度包装内容
答案 3 :(得分:0)
更新title_text
如下:
<TextView
android:id="@+id/title_text"
fontPath="fonts/title_bold.ttf"
android:layout_width="match_parent"
android:layout_toLeftOf="@+id/title_count_text"
android:ellipsize="end"
android:layout_height="60dp"
android:gravity="center"
android:maxLines="1"
android:text="This is a Sample Test"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
以下3个属性是主要添加的:
android:layout_width="match_parent"
android:layout_toLeftOf="@+id/title_count_text"
android:ellipsize="end"
另外,删除:
android:layout_centerInParent="true"
android:layout_gravity="center"
答案 4 :(得分:0)
试试这个: -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginEnd="@dimen/size_10dp"
android:layout_marginStart="@dimen/size_10dp">
<TextView
android:id="@+id/title_count_text"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:background="@color/background"
android:textAlignment="center"
android:ellipsize="end"
android:maxLines="1"
android:gravity="center"
android:text="(0)"
android:paddingLeft="@dimen/size_5dp"
android:paddingStart="@dimen/size_5dp"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/title_text"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:ellipsize="end"
android:layout_gravity="end"
android:maxLines="1"
android:gravity="center"
android:text="This is a Sample Test"
android:textAlignment="center"
android:textColor="@color/textColorGrey"
android:textSize="@dimen/size_18dp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
答案 5 :(得分:-1)
试试这个让我知道,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#ff0000"
android:weightSum="1"
>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.8"
android:text="test"
android:gravity="center"/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"
android:text="0"
android:gravity="center"/>
</LinearLayout>
答案 6 :(得分:-1)
您想要关注输出正确?:
以下是适用于我的代码:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="60dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/title_text"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_margin="5dp"
android:layout_weight="0.9"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="This is a Sample Test This is a Sample Test This is a Sample Test"
android:textAlignment="center"
android:textStyle="bold" />
<TextView
android:id="@+id/title_count_text"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_weight="0.1"
android:ellipsize="end"
android:gravity="center|center_vertical"
android:maxLines="1"
android:text="(0)"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
试试吧!
答案 7 :(得分:-1)
试试这个: -
将android:layout_toStartOf =“@ + id / title_count_text”和android:maxLines =“2”添加到带有“@ + id / title_text”的TextView。它对我有用。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_marginEnd="@dimen/dp10"
android:layout_marginStart="@dimen/dp10">
<TextView
android:id="@+id/title_count_text"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_alignParentEnd="true"
android:ellipsize="end"
android:gravity="center|center_vertical"
android:maxLines="1"
android:paddingLeft="@dimen/dp5"
android:paddingStart="@dimen/dp5"
android:text="(0)"
android:textSize="@dimen/dp18"
android:textStyle="bold" />
<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_toStartOf="@+id/title_count_text"
android:gravity="center"
android:maxLines="2"
android:text="This is a Sample Test This is a Sample Test This is a Sample Test This is a Sample Test"
android:textAlignment="center"
android:textSize="@dimen/dp18" />
</RelativeLayout>