Android 相对布局,将某物定位在 2 个视图的中间
Android relative layout, positioning something in the middle of 2 views
我在相对布局中有 2 个 ImageButtons 和一个 Seerkbar,我试图定位它们以便:
1) 第一个imageButton在左边,它的左边和parent的左边对齐。
2) 第二个imageButton在右边,它在右边,父元素的右边对齐。
3) Seekbar在中间,它覆盖了所有剩余的space。
它应该看起来像这样:
我试过这个:
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton android:id="@+id/image_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/image_1"/>
<SeekBar android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_1"
android:layout_toLeftOf="@id/image_2"
android:max="95"/>
<ImageButton android:id="@+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/image_2"/>
</RelativeLayout>
这在我的 intellij 设备预览上运行良好,但由于以下行而无法编译:
android:layout_toLeftOf="@id/image_2"
因为我在声明它之前使用 id/image_2。有解决办法吗?
TRY THIS....
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton android:id="@+id/image_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/image_1"/>
<SeekBar android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/image_1"
android:layout_toLeftOf="@+id/image_2"
/>
<ImageButton android:id="@+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/image_2"/>
</RelativeLayout>
我想你忘了在 id
之前加上 +
符号,像这样:
android:layout_toRightOf="@+id/image_1"
android:layout_toLeftOf="@+id/image_2"
我不建议在 RelativeLayout
中引用两个组件,例如 toRightOf
和 toLeftOf
。始终尝试将每个引用到一个。在您的情况下,您还可以使用 LinearLayout
和权重来为 chils 进行均匀分布,如下所示
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageButton
android:id="@+id/image_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<SeekBar
android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:max="95" />
<ImageButton
android:id="@+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
</LinearLayout>
这会帮助你处理不同的分辨率,试一试
我把 imageview
而不是 seekbar
哈哈
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"
android:gravity="center"
android:background="#FFF"
android:layout_margin="1dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="40"
android:background="#aef"
android:layout_margin="4dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:background="#984"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="100dip"
android:layout_weight="20"
android:background="#fec"
android:layout_margin="4dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"
android:background="#594"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="40"
android:background="#9ef"
android:layout_margin="4dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/imageView3"
android:background="#994"/>
</LinearLayout>
</LinearLayout>
我在相对布局中有 2 个 ImageButtons 和一个 Seerkbar,我试图定位它们以便:
1) 第一个imageButton在左边,它的左边和parent的左边对齐。
2) 第二个imageButton在右边,它在右边,父元素的右边对齐。
3) Seekbar在中间,它覆盖了所有剩余的space。
它应该看起来像这样:
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton android:id="@+id/image_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/image_1"/>
<SeekBar android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_1"
android:layout_toLeftOf="@id/image_2"
android:max="95"/>
<ImageButton android:id="@+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/image_2"/>
</RelativeLayout>
这在我的 intellij 设备预览上运行良好,但由于以下行而无法编译:
android:layout_toLeftOf="@id/image_2"
因为我在声明它之前使用 id/image_2。有解决办法吗?
TRY THIS....
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton android:id="@+id/image_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/image_1"/>
<SeekBar android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/image_1"
android:layout_toLeftOf="@+id/image_2"
/>
<ImageButton android:id="@+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/image_2"/>
</RelativeLayout>
我想你忘了在 id
之前加上 +
符号,像这样:
android:layout_toRightOf="@+id/image_1"
android:layout_toLeftOf="@+id/image_2"
我不建议在 RelativeLayout
中引用两个组件,例如 toRightOf
和 toLeftOf
。始终尝试将每个引用到一个。在您的情况下,您还可以使用 LinearLayout
和权重来为 chils 进行均匀分布,如下所示
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageButton
android:id="@+id/image_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
<SeekBar
android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:max="95" />
<ImageButton
android:id="@+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
</LinearLayout>
这会帮助你处理不同的分辨率,试一试
我把 imageview
而不是 seekbar
哈哈
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"
android:gravity="center"
android:background="#FFF"
android:layout_margin="1dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="40"
android:background="#aef"
android:layout_margin="4dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:background="#984"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="100dip"
android:layout_weight="20"
android:background="#fec"
android:layout_margin="4dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"
android:background="#594"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="40"
android:background="#9ef"
android:layout_margin="4dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/imageView3"
android:background="#994"/>
</LinearLayout>
</LinearLayout>