10

我试图让我的布局更适合横向,我有一个常见的模式是添加一个LinearLayout带有一些按钮(例如确定|取消)并设置一个值,layout_weight以便空间均匀分布。问题是,当您在横向模式下使用手机或(尤其是)平板电脑时,您最终会得到看起来很可笑的巨大按钮。我尝试maxWidth在按钮和线性布局上进行设置,但无济于事。实现这一目标的最简单方法是什么?即,设置视图的最大水平尺寸,使其不会增长到整个宽度。我尝试了一堆不同的东西,但没有一个奏效。

这是一个示例布局:

    <LinearLayout 
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:paddingLeft="10dp"
      android:paddingRight="10dp"
      android:paddingTop="6dp"
      android:paddingBottom="6dp">
      <Button 
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:enabled="false"
        android:textStyle="bold"
        android:text="@string/button1" />
      <Button 
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/button2" />
    </LinearLayout>

注意:我知道我可以为横向创建一个新的布局文件并在那里做魔术。我想将专门的布局文件保持在最低限度,我希望这不需要它们。

4

3 回答 3

1

在对相关布局进行了相当多的处理之后,我偶然发现了这个答案,这就是我最终使用的。

于 2011-06-08T23:02:12.023 回答
0

我这里没有 Eclipse 来测试它,但我会使用 RelativeLayout 来代替,例如:

<RelativeLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  >
  <View
    android:id="@+id/centerView"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    />
  <Button 
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/centerView"
    android:enabled="false"
    android:textStyle="bold"
    android:text="@string/button1" 
    />
  <Button 
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/centerView"
    android:text="@string/button2" 
    />
</RelativeLayout>

正如我所说,我现在无法测试它,但你可以解决这个想法。

附带说明,除非您的布局非常简单,否则我通常会为横向创建单独的布局。这需要更多的工作,但您可以通过这种方式更好地优化视图。特别是,如果您计划支持更大的屏幕。

于 2011-06-08T20:58:58.757 回答
-1
<RelativeLayout
   android:id="@+id/rlMain"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_marginLeft="12dp"
   android:layout_marginRight="12dp">

    <View
      android:id="@+id/vCenter"
      android:layout_width="0dp"
      android:layout_height="0dp"
      android:layout_centerHorizontal="true"
      android:layout_marginRight="5dp"
      android:layout_marginLeft="5dp"/>

    <Button
     android:id="@+id/btnOne"
     android:layout_width="wrap_content"
     android:layout_height="40dp"
     android:layout_toLeftOf="@id/vCenter"
     <!--Change this for different widths-->
     android:minWidth="200dp"/>

    <Button
     android:id="@+id/btnTwo"
     android:layout_width="wrap_content"
     android:layout_height="40dp"
     android:layout_toRightOf="@id/vCenter"
     <!--Change this for different widths-->
     android:minWidth="200dp"/>
</RelativeLayout>
于 2015-05-20T14:57:46.997 回答