2012-01-12 89 views
2

我想创建一个自定义列表项。基本上它有一个水平LinearLayout中的3个区域。最左边的一个应该是50dp宽,也是最右边的一个。我希望中间的人占据其余的空间。最后它应该是“50px |宽度 - 100px | 50px”。我知道我可以通过编程来完成这个任务。但我也可以在XML中做到这一点?在Android布局中混合使用绝对尺寸和相对尺寸 - 如何?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="100dp" 
    android:gravity="right" > 

    <FrameLayout 
     android:id="@+id/frameLayout1" 
     android:layout_width="50dp" 
     android:layout_ 
     android:layout_height="match_parent" 
     android:layout_weight="0"> 
    </FrameLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="fill" 
     android:orientation="vertical" 
     android:layout_weight="0"> 

    </LinearLayout> 

    <FrameLayout 
     android:id="@+id/frameLayout2" 
     android:layout_width="50dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0" > 

    </FrameLayout> 

</LinearLayout> 

像往常一样:期待听到你们的巧妙构思&非常感谢!

回答

2

只需将中间项目的布局权重设置为1.并将layout_width设置为fill_parent。

+0

现在我觉得有点蠢。我可以发誓,我试图做到这一点 - 但你可能现在就是那种感觉。你能否指点我一些比http://developer.android.com/guide/topics/ui/declaring-layout.html更详细的文档?进一步解释权重的逻辑?谢谢! – fluxon 2012-01-12 23:18:51

+0

一件物品首先需要一定的空间。然后,如果仍有剩余空间,剩余部分将根据其权重分配到不同部分。因此,体重0没有多余,体重2获得了体重1等额外空间的两倍,至少,这是LinearLayout的逻辑。 – 2012-01-12 23:26:16

+0

这个答案让我到了1000 :-) – 2012-01-12 23:28:10