如何使我的TextView宽度的一半,其父?

如果我想使我的TextView宽度完全等于其父项的宽度,我可以使用

android:layout_width="fill_parent" 

如果我想把它做成零件宽度的一半呢? 或者,一般来说,设置相对于父宽度的宽度?

编辑:我正在使用相对布局

我的屏幕看起来像这样。

我的屏幕看起来像这样。

Related of "如何使我的TextView宽度的一半,其父?"

快速和肮脏的方式是这样的:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="2"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="#ff0000" /> </LinearLayout> </RelativeLayout> 

你必须把它包装在另一个容器中,然后只使用父母的一半重量。

使用android:layout_weight="0.5"它将适用于linearLayout

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:weightSum="1" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/feedback" android:layout_width="wrap_content" android:layout_weight="0.5" android:textSize="15pt" /> 

首先不要使用“fill_parent”,而是使用“match_parent”。

其次,你想在父母的地方放置半父母的TextView

在使用RelativeLayout的时候,这个动作有点难度,试着从代码中完成,像这样:

 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int parentHeight = MeasureSpec.getSize(heightMeasureSpec); int myWidth = (int) (parentHeight * 0.5); super.onMeasure(MeasureSpec.makeMeasureSpec(myWidth, MeasureSpec.EXACTLY), heightMeasureSpec); } 

参考: 如何根据父级的维度来确定Android视图的大小

您可能需要设置父LinearLayout的weightSum,如下所示:

 <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" android:padding="6dp" android:weightSum="2"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="@string/hello" android:layout_weight="1" /> </LinearLayout> 

用@rj和@djhacktorrebornbuild议的线性布局包裹你的TextView,然后把整个东西放到相对布局中。

如果你想使用RelativeLayout,那么最好的办法是在屏幕中央放置一个虚拟视图,把第一个视图放在右边,第二个放在这个虚拟视图的左边,

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_contentt" android:background="#ff0000" android:layout_toLeftOf="@id/dummyView/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#ff0000" android:layout_toRightOf="@id/dummyView"/> <View android:id="+@id/dummyView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="invisible" android:layout_centerInParent="true"/> </RelativeLayout>