我正在设计我的应用程序UI。我需要一个这样的布局:

(<和>是按钮)。问题是,我不知道如何确保TextView将填补剩余的空间,与两个按钮有固定的大小。

如果我使用fill_parent的文本视图,第二个按钮(>)不能显示。

我如何制作一个看起来像图像的布局?


当前回答

您可以使用将layout_width或layout_width设置为0dp(通过您想要填充剩余空间的方向)。 然后使用layout_weight使其填充剩余空间。

其他回答

如果<TextView>被放置在线性布局中,设置<和>的Layout_weight属性为0和1的TextView。

如果你使用RelativeLayout,对齐<和>到左边和右边,并设置“布局到左边”和“布局到右边”属性的TextView的id <和>。

如果你使用RelativeLayout,你可以这样做:

<RelativeLayout
    android:layout_width = "fill_parent"
    android:layout_height = "fill_parent">
    <ImageView
        android:id = "@+id/my_image"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_alignParentTop ="true" />
    <RelativeLayout
        android:id="@+id/layout_bottom"
        android:layout_width="fill_parent"
        android:layout_height = "50dp"
        android:layout_alignParentBottom = "true">
        <Button
            android:id = "@+id/but_left"
            android:layout_width = "80dp"
            android:layout_height = "wrap_content"
            android:text="&lt;"
            android:layout_alignParentLeft = "true"/>
        <TextView
            android:layout_width = "fill_parent"
            android:layout_height = "wrap_content"
            android:layout_toLeftOf = "@+id/but_right"
            android:layout_toRightOf = "@id/but_left" />
        <Button
            android:id = "@id/but_right"
            android:layout_width = "80dp"
            android:layout_height = "wrap_content"
            android:text="&gt;"
            android:layout_alignParentRight = "true"/>
    </RelativeLayout>
</RelativeLayout>

它´s简单 你设置minWidth或minHeight,取决于你正在寻找什么,水平或垂直。 对于另一个对象(你想要填充剩余空间的对象),你设置一个权重为1(设置宽度来包装它的内容),所以它将填充剩余的区域。

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center|left"
        android:orientation="vertical" >
</LinearLayout>
<LinearLayout
        android:layout_width="80dp"
        android:layout_height="fill_parent"
        android:minWidth="80dp" >
</LinearLayout>

来自woodshy的答案为我工作,它比Ungureanu Liviu的答案更简单,因为它不使用RelativeLayout。 为了清晰起见,我给出了我的布局:

<LinearLayout 
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      >

     <Button
        android:layout_width = "80dp"
        android:layout_weight = "0"
        android:layout_height = "wrap_content"
        android:text="&lt;"/>
     <TextView
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:layout_weight = "1"/>
     <Button
        android:layout_width = "80dp"
        android:layout_weight = "0"
        android:layout_height = "wrap_content"
        android:text="&gt;"/>   
 </LinearLayout>

对于那些有相同的故障与<线性布局…>就像我做的那样:

重要的是指定android:layout_width="fill_parent",它将不能与wrap_content工作。

哦,你可以省略android:layout_weight = "0",这不是必需的。

我的代码基本上与https://stackoverflow.com/a/25781167/755804中的代码相同(by Vivek Pandey)