2013-05-29 95 views
0

我正在尝试创建一个活动,其中排列成两列的文本框很少。我的两列有30%的屏幕宽度,其余的有70%的屏幕。这里是我的XML代码:以百分比值设置宽度

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_marginTop="3dp" 
     android:layout_weight="1" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_marginRight="2dp" 
      android:layout_weight="0.3" 
      android:background="@drawable/gradient_bg_hover" 
      android:gravity="center_vertical" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="naming is fun fun is naming" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:layout_weight="0.7" 
      android:background="@drawable/gradient_bg_hover" 
      android:gravity="center_vertical" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Hi" /> 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_marginTop="3dp" 
     android:layout_weight="1" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_marginRight="2dp" 
      android:layout_weight="0.3" 
      android:gravity="center_vertical" 
      android:background="@drawable/gradient_bg_right" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Hi" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:layout_weight="0.7" 
      android:gravity="center_vertical" 
      android:background="@drawable/gradient_bg_right" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Hi" /> 
     </LinearLayout> 
    </LinearLayout> 


</LinearLayout> 

</ScrollView> 

问题是与文本“喜”,走的是屏幕的30%,但就像一个单词“你好”需要更多的空间,并形成扭曲的列。

无论文本的大小是多少,都应该在屏幕上最多显示30%。任何帮助表示赞赏。

回答

0

如果使用layout_gravity然后设置相应的高度调节/ widht为0。另外,我发现没有理由使用额外的嵌套线性布局。也许你可以使用这样的东西。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_marginTop="3dp" 
     android:orientation="horizontal" > 

     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="2dp" 
      android:layout_weight="0.3" 
      android:text="Hi" /> 

     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.7" 
      android:text="Hi" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_marginTop="3dp" 
     android:orientation="horizontal" > 

     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="2dp" 
      android:layout_weight="0.3" 
      android:text="Hi" /> 

     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.7" 
      android:text="Hi" /> 
    </LinearLayout> 
</LinearLayout> 
+0

我也有一些额外的元素,所以我有额外的'LinearLayout'这是不相关的我的问题,因此我删除.. – NewUser

0

包含textview的线性布局的layout_width应该是0 dp。

使用 -

android:layout_width="0dp" 

使用代替 -

android:layout_width="wrap_content" 

因为当你正在定义你没有权重必须定义的宽度。 Weigths会自动处理宽度。

看看这是否有帮助。

编辑 - 这个XML应该很好地工作 -

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:layout_marginTop="3dp" 
    android:layout_weight="1" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_marginRight="2dp" 
     android:layout_weight="0.3" 
     android:background="@android:color/background_dark" 
     android:gravity="center_vertical" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="naming is fun fun is naming" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="0.7" 
     android:background="@android:color/background_light" 
     android:gravity="center_vertical" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hi" /> 
    </LinearLayout> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:layout_marginTop="3dp" 
    android:layout_weight="1" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_marginRight="2dp" 
     android:layout_weight="0.3" 
     android:gravity="center_vertical" 
     android:background="@android:color/background_dark" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hi" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="0.7" 
     android:gravity="center_vertical" 
     android:background="@android:color/background_light" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hi" /> 
    </LinearLayout> 
</LinearLayout> 

+0

我应该更改哪个宽度?你能发布基于我的代码的更新吗? – NewUser

+0

检查编辑... – Anukool

0
  1. 你应该考虑适当的地层表视图中可以有指定layout_wieght了。

  2. 如果您使用的是layout_wieght,则将textviews的宽度设置为fill_parent,因为它是分配的空间。

  3. 使用为textview启用的单行,如果需要,您可以选取文本。

编辑

这不是因为这个

<LinearLayout 
      android:layout_width="wrap_content" //wrap_content 
      android:layout_height="match_parent" 
      android:layout_marginRight="2dp" 
      android:layout_weight="0.3" 
      android:gravity="center_vertical" 
      android:background="@drawable/gradient_bg_right" > 

      <TextView 
       android:layout_width="wrap_content"//wrap_content 
       android:layout_height="wrap_content" 
       android:text="Hi" /> 
     </LinearLayout> 

的工作,你不assiging的获分配的空间TextView的

+0

我的文字不会超过5-7个字符。我也考虑过表格布局,但是我想知道为什么这不起作用。 – NewUser

0

尝试使用本作的TextView。如果这一点儿也不解决它试图增加或根据您的情况减少值3改为

android:ems = "3"