Android - 3列行布局 - 如何让它占用一定比例的屏幕?

时间:2012-09-07 15:39:52

标签: android android-layout

我的这种布局有硬编码宽度:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:paddingTop="4dip"
     android:paddingBottom="6dip"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:textSize="13sp"
     android:weightSum="1.0">

     <TextView android:id="@+id/TRAIN_CELL"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight=".60"/>




      <TextView android:id="@+id/FROM_CELL"
         android:layout_width="0dp"
         android:textSize="20sp"
         android:textStyle="bold"
         android:gravity="center"
         android:textColor="@color/light_best_blue"
         android:layout_height="wrap_content" 
         android:layout_weight=".20"/>


     <TextView android:id="@+id/TO_CELL"
         android:layout_width="0dp"
         android:textSize="20sp"
         android:textStyle="bold" 
         android:gravity="center"
         android:layout_weight=".20"
         android:textColor="@color/light_best_blue"
         android:layout_height="wrap_content"  />

</LinearLayout>

但有没有办法给每列提供宽度的百分比?

谢谢!

3 个答案:

答案 0 :(得分:3)

使用

layout_width="0dp"
layout_weight="x"

其中x是每个元素的百分比。见http://developer.android.com/guide/topics/ui/layout/linear.html

答案 1 :(得分:2)

您将weight属性和宽度设置为0dp,并在父级中指定weightSum。

在你的情况下,将线性布局的android:weightSum设置为1,并将孩子之间的权重除以0.3,0.3和0.4。 (机器人:layout_weight = “0.3”)。

编辑:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:paddingTop="4dip"
 android:paddingBottom="6dip"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:textSize="13sp"
 android:weightSum="1.0"
 android:orientation="horizontal">

 <TextView android:id="@+id/TRAIN_CELL"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight=".60"/>




  <TextView android:id="@+id/FROM_CELL"
     android:layout_width="0dp"
     android:textSize="20sp"
     android:textStyle="bold"
     android:gravity="center"
     android:layout_height="wrap_content" 
     android:layout_weight=".20"/>


 <TextView android:id="@+id/TO_CELL"
     android:layout_width="0dp"
     android:textSize="20sp"
     android:textStyle="bold" 
     android:gravity="center"
     android:layout_weight=".20"
     android:layout_height="wrap_content"  />

</LinearLayout>

答案 2 :(得分:2)

这篇文章类似于this帖子 您可以创建每个列宽到所需宽度的百分比
请检查此Android Measure Screen in percentage