LinearLayout中的layout_gravity

发布于 2024-10-14 10:52:58 字数 2782 浏览 7 评论 0原文

这是我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_marginLeft="5dip" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:textColor="#ffffff" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/nazajGumb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/roaming_backbtn" >
        </Button>

        <Button
            android:id="@+id/homeBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="@string/roaming_homebtn" >
        </Button>
    </LinearLayout>

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="15dip"
        android:prompt="@string/roaming_spinnerPrompt" />

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Random text"
        android:textColor="#ffffcc" />

    <Button
        android:id="@+id/testBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="test" >
    </Button>
</LinearLayout>

LinearLayout2 中 ImageView 和 TextView 的定位以及 LinearLayout3 中按钮的定位不起作用(使用布局重力)。

我在这里缺少什么?

This is my layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_marginLeft="5dip" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:textColor="#ffffff" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/nazajGumb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/roaming_backbtn" >
        </Button>

        <Button
            android:id="@+id/homeBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="@string/roaming_homebtn" >
        </Button>
    </LinearLayout>

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="15dip"
        android:prompt="@string/roaming_spinnerPrompt" />

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Random text"
        android:textColor="#ffffcc" />

    <Button
        android:id="@+id/testBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="test" >
    </Button>
</LinearLayout>

The positioning of ImageView and TextView in LinearLayout2 and positiong of buttons in LinearLayout3 is not working (using layout gravity).

What am i missing here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

jJeQQOZ5 2024-10-21 10:52:58

这不是 android:layout_gravity 的工作方式。 leftcenter_horizo​​ntal 参数仅在 android:orientationvertical 时才起作用。为了实现你想要的,你最好使用RelativeLayout

  <RelativeLayout
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">

        <ImageView   
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="5dip"/>

        <TextView 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content"  
        android:layout_centerHorizontal="true"
        android:textColor="#ffffff"/>
  </RelativeLayout>    

That's not the way in which android:layout_gravity works. Both, left and center_horizontal parameters work only when the android:orientation is vertical. To achieve what you want, you better use RelativeLayout:

  <RelativeLayout
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">

        <ImageView   
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="5dip"/>

        <TextView 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content"  
        android:layout_centerHorizontal="true"
        android:textColor="#ffffff"/>
  </RelativeLayout>    
送舟行 2024-10-21 10:52:58

添加到 @Cristian 的答案中,同样的事情也可以通过广泛使用属性来使用线性布局来完成 - “weight”和“weight_sum”(尽管是一种更乏味的方法) -

<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
    android:layout_margin="1dp"
    tools:context=".MainActivity"
    android:weightSum="5"
    android:padding="10dp"
    android:id="@+id/parent_linear_layout">

    <!-- Sub #1 Linear Layout #1 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:weightSum="5"
        android:id="@+id/sub_1_linear_layout_1">

        <!-- Sub #2 Linear Layout #1 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_1">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="5dp"
                android:src="@drawable/stack_overflow"/>

        </LinearLayout>

        <!-- Sub #2 Linear Layout #2 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #3 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_3">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="@string/stack_overflow"
                android:textColor="#111111"/>

        </LinearLayout>

        <!-- Sub #2 Linear Layout #4 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_4">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #5 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_5">

        </LinearLayout>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #2 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:weightSum="5"
        android:id="@+id/sub_1_linear_layout_2">

        <!-- Sub #2 Linear Layout #1 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_1_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #2 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_2_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #3 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_3_2">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/back"
                android:id="@+id/back_button"/>

        </LinearLayout>

        <!-- Sub #2 Linear Layout #4 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_4_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #5 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_5_2">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/home"
                android:id="@+id/home_button"/>

        </LinearLayout>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #3 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:id="@+id/sub_1_linear_layout_3">

        <Spinner
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:prompt="@string/random_prompt"/>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #4 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:id="@+id/sub_1_linear_layout_4">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#111111"
            android:text="@string/random_text"/>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #5 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:id="@+id/sub_1_linear_layout_5">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#111111"
            android:text="@string/test_button"/>

    </LinearLayout>

</LinearLayout>

注意:由于 API 级别 8“fill_parent”已经被已弃用并使用“match_parent”代替。请参阅 - match_parent 和 fill_parent 有什么区别?< /a>

Adding to the answer by @Cristian the same thing can also be done using Linear Layout by extensive use of the attributes - "weight" and "weight_sum" (although a more tedious approach) -

<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
    android:layout_margin="1dp"
    tools:context=".MainActivity"
    android:weightSum="5"
    android:padding="10dp"
    android:id="@+id/parent_linear_layout">

    <!-- Sub #1 Linear Layout #1 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:weightSum="5"
        android:id="@+id/sub_1_linear_layout_1">

        <!-- Sub #2 Linear Layout #1 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_1">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="5dp"
                android:src="@drawable/stack_overflow"/>

        </LinearLayout>

        <!-- Sub #2 Linear Layout #2 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #3 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_3">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="@string/stack_overflow"
                android:textColor="#111111"/>

        </LinearLayout>

        <!-- Sub #2 Linear Layout #4 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_4">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #5 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_5">

        </LinearLayout>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #2 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:weightSum="5"
        android:id="@+id/sub_1_linear_layout_2">

        <!-- Sub #2 Linear Layout #1 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_1_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #2 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_2_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #3 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_3_2">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/back"
                android:id="@+id/back_button"/>

        </LinearLayout>

        <!-- Sub #2 Linear Layout #4 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_4_2">

        </LinearLayout>

        <!-- Sub #2 Linear Layout #5 -->
        <LinearLayout
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/sub_2_linear_layout_5_2">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/home"
                android:id="@+id/home_button"/>

        </LinearLayout>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #3 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:id="@+id/sub_1_linear_layout_3">

        <Spinner
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:prompt="@string/random_prompt"/>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #4 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:id="@+id/sub_1_linear_layout_4">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#111111"
            android:text="@string/random_text"/>

    </LinearLayout>

    <!-- Sub #1 Linear Layout #5 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_weight="1"
        android:id="@+id/sub_1_linear_layout_5">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#111111"
            android:text="@string/test_button"/>

    </LinearLayout>

</LinearLayout>

NOTE: Since API level 8 "fill_parent" has been deprecated and "match_parent" is used instead. See - What is the difference between match_parent and fill_parent?

疯狂的代价 2024-10-21 10:52:58
android:layout_marginLeft="5dip"

应该是(dp而不是dip)

android:layout_marginLeft="5dp"
android:layout_marginLeft="5dip"

should be (dp not dip)

android:layout_marginLeft="5dp"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文