代码之家  ›  专栏  ›  技术社区  ›  Alexander Farber

水平LinearLayout中的2个按钮-如何展开它们?

  •  0
  • Alexander Farber  · 技术社区  · 11 年前

    我正在关注 Android Programming: The Big Nerd Ranch Guide 书中有一个非常新的问题:

    在我的第一个名为GeoQuiz的应用程序中,如何将右侧按钮移动到屏幕的最右侧(并且仍然保持按钮的大小 wrap_content ):

    screenshot

    我的布局文件可以在GitHub上看到 activity_quiz.xml 以下是摘录:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="de.afarber.geoquiz.QuizActivity" >
    ....
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <Button
                android:id="@+id/true_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/true_button" />
    
            <Button
                android:id="@+id/false_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/false_button" />
    
        </LinearLayout>
    ....       
    </LinearLayout>
    
    4 回复  |  直到 11 年前
        1
  •  2
  •   Farouk Touzi    11 年前

    请试试这个

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="de.afarber.geoquiz.QuizActivity" >
    ....
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
        <Button
            android:id="@+id/true_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:text="@string/true_button" />
    
        <Button
            android:id="@+id/false_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="@string/false_button" />
    
    </RelativeLayout>
    ....       
    </LinearLayout>
    
        2
  •  1
  •   Hareshkumar Chhelana    11 年前

    试着这样做,希望这能帮助你解决问题。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="de.afarber.geoquiz.QuizActivity" >
    
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <Button
                android:id="@+id/true_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/true_button" />
            <View
                android:layout_width="0dp"
                android:layout_height="1dp"
                android:layout_weight="1"/>
            <Button
                android:id="@+id/false_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/false_button" />
    
        </LinearLayout>
    </LinearLayout>
    
        3
  •  0
  •   kalidoss rajendran    11 年前

    我希望这对你有帮助:

    <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="de.afarber.geoquiz.QuizActivity" >
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:weightSum="3">
    
        <Button
            android:id="@+id/true_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/true_button"
            android:layout_weight="1" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_weight="1"
            android:visibility="invisible"/>
        <Button
            android:id="@+id/false_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/false_button"
            android:layout_weight="1" />
    
    </LinearLayout>
    

        4
  •  -1
  •   Anav Sanghvi    11 年前

    我建议在先前的水平布局中再创建两个水平布局,并为每个布局赋予0.5的权重。然后可以将true和false按钮放置在水平布局的中心。代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="de.afarber.geoquiz.QuizActivity" >
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
    
        <LinearLayout
        android:orientation="horizontal"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:gravity="center" >
    
       <Button
           android:id="@+id/true_button"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/true_button" />
    
           </LinearLayout>
    
        <LinearLayout
        android:orientation="horizontal"
        android:layout_width="0dp"
        android:layout_height="wrap_content" 
        android:layout_weight="0.5"
        android:gravity="center">
    
            <Button
                android:id="@+id/false_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/false_button"/>
    
            </LinearLayout>
    </LinearLayout>
    

    我希望这会有所帮助,因为你的纽扣的尺寸会保持包裹的状态,你可以将纽扣展开。 虽然使用相对布局可以轻松解决问题,但我强烈建议您不要使用相对布局,因为当屏幕分辨率改变时,它们可能会产生问题