【问题标题】:Linear layout gravity and place item线性布局重力和放置项目
【发布时间】:2017-09-24 04:05:37
【问题描述】:

今天我正在处理布局,我有一个问题,我认为是基本的。

我有一个线性布局和一个图像视图。我想在布局的左侧或右侧显示图像

我试过了,layout_gravity 重要的是要准确地说我想在线性而不是相对或其他东西上做。

在此先感谢,一个屏幕可以准确地回答我的问题

http://hpics.li/fc67805

我与图像的线性关系

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/Reboot"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.3"
                android:layout_gravity="left"
                android:src="@drawable/arreter" />
</LinearLayout>

【问题讨论】:

  • 您是否尝试将 layout_width 设置为 wrap_content ?
  • 检查我的答案以将 ImageView 放置在右侧或左侧。如果您想将 IV 放在右侧,则接受的答案不起作用。

标签: android android-layout android-linearlayout layout-gravity


【解决方案1】:

发生的情况是您的 ImageView 与父 LinearLayout 的大小“匹配”,因此无法将其对齐到左侧或右侧...在这种情况下没有意义,因为视图需要反正整个空间。如果您真的想可视化图像对齐到其父级的左侧或右侧的效果,您可以将ImageViewlayout_widthlayout_height 更改为wrap_content,如下所示...

     <ImageView
            android:id="@+id/Reboot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:src="@drawable/arreter" />

另外,请注意我删除了 layout_weight 属性,因为它对于 LinearLayout 内的单个子视图也无用

【讨论】:

  • 你打败了我!很好的答案;)
  • @G.T.抱歉,伙计,有时会发生这种情况;)
  • @Leo 这个解决方案能把 ImageView 放在右边吗?而且我认为这里不需要android:layout_gravity="left"
  • @Aniruddha 如果您将layout_gravity 属性更改为right...是的
  • @Leo 请通过将值更改为right 来检查。它不会起作用。
【解决方案2】:

使用此布局将 ImageView 对齐到右/左

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/Reboot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:layout_gravity="left"         // you can use right also. It works.
                android:src="@drawable/ic_launcher" />
</LinearLayout>

您的 LinearLayout 方向是horizontal,因此您可以使用android:layout_gravity 将子视图放置在top and bottom 中。对于 horizontal LinearLayout right and left 不起作用,它们仅适用于 vertical LinearLayout。希望这些信息有用:)

【讨论】:

  • 请您解释一下为什么它是多余的?
  • 嗯,你有一部分回复了,谢谢,但现在,问题来了,我想要两个图像视图在同一行上一个在左边,一个在右边hpics.li/75900a6
  • 你能把它作为不同的问题发布并在这里给我链接吗?
【解决方案3】:

试试这个方法,希望能帮助你解决问题。

到左侧

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/Reboot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/ic_launcher" />
</LinearLayout>

右侧

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right">

        <ImageView
            android:id="@+id/Reboot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/ic_launcher" />
</LinearLayout>

【讨论】:

    【解决方案4】:

    这个问题可能已经回答了,但万一其他人发现了这个问题

    Layout_gravity 和 Gravity 是不同的。 Layout_gravity 更改项目在其 ViewGroup 中的位置,而 andorid:gravity 更改项目内容的位置。

    关于差异的讨论很好 here

    现在,由于 LinearLayout 的宽度和 ImageView 的宽度都是 match_parent,layout_gravity 将不起作用,因为它们已经是相同的大小。 您需要将 LinearLayout 的宽度保持在 ma​​tch_parent,并将 ImageView 的宽度更改为 wrap_content。然后,您可以使用 android:layout_gravity="right" 或 android:layout_gravity="left" 将图像向右或向左移动。

    注意:这也适用于向上/向下移动图像。只需更改 ViewGroup 和 ImageView 的高度而不是宽度并使用 android:layout_gravity="top" 或 android:layout_gravity="bottom"

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多