我有一个LinearLayout,我想垂直添加3个TextViews。我能做到。
我的问题是:如何让我的LinearLayout中的TextViews在垂直方向上均匀分布,这恰好是800x600像素。
鉴于LinearLayout的高度为600像素,这意味着将3行文本放在y = 150,y = 300,y = 450(近似)的行上。
如何创建一个XML文件来实现垂直间距?
注意:我不想使用绝对坐标。
答案 0 :(得分:2)
您可以通过在View
之间和之间放置空TextView
来设置它们的高度和重量,以使它们平均填充剩余空间。在你的高度为600的例子中,这将把它们放在150,300和450,而不是100,300和500,就像加权TextView
那样。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
答案 1 :(得分:1)
您可以使用weight属性将TextView的比例调整为窗口大小。此外,您可以指定gravity属性以使TextView
内的文本居中。
在此代码中,TextView
各占屏幕的1/3:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv1"
android:layout_weight="1"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:gravity="center"
android:text="tv1"/>
<TextView
android:id="@+id/tv2"
android:layout_weight="1"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:gravity="center"
android:text="tv1"/>
<TextView
android:id="@+id/tv3"
android:layout_weight="1"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:gravity="center"
android:text="tv1"/>
</LinearLayout>
答案 2 :(得分:1)
下面是均匀管理文字视图的代码,只需复制粘贴
即可当您在xml代码中使用重量和重力进行设计时,它将自动在所有屏幕上进行调整
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff"
android:text="1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff"
android:text="2"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff"
android:text="3"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000" />
</LinearLayout>
答案 3 :(得分:1)
您可以在layout_weight
示例
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="text1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="text2"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="text3"
android:textAppearance="?android:attr/textAppearanceLarge" />