如果我想让我的 TextView 宽度完全等于其父级的宽度,我可以使用
android:layout_width="fill_parent"
如果我想让它成为零件宽度的一半怎么办?或者,一般来说,设置相对于父宽度的宽度?
编辑:我正在使用相对布局
我的屏幕是这样的。
如果我想让我的 TextView 宽度完全等于其父级的宽度,我可以使用
android:layout_width="fill_parent"
如果我想让它成为零件宽度的一半怎么办?或者,一般来说,设置相对于父宽度的宽度?
编辑:我正在使用相对布局
我的屏幕是这样的。
快速而肮脏的方式是这样的:
<?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" />
如果你想使用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>
首先不要使用“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);
}
您可能需要设置 parent 的 weightSum LinearLayout
,如下所示:-
<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 和@djhacktorreborn 建议的那样,用线性布局包装你的TextView,然后把整个东西放到一个相对布局中。