【问题标题】:Imagebuttons won't align on the right next to eachother图像按钮不会在彼此相邻的右侧对齐
【发布时间】:2015-04-22 13:52:04
【问题描述】:

我在片段的容器中动态注入行。 但我似乎无法让三个图像按钮向右对齐,彼此相邻。

谁有想法?

片段布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scenesScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/switchLayout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/scenesTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/switch_title"
            android:text="@string/title_switches" />

        <LinearLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:orientation="vertical">
        </LinearLayout>

        <TextView
            android:id="@+id/statusText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"/>
    </LinearLayout>
</ScrollView>

我的行布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="10dp">

    <TextView
        android:id="@+id/switch_name"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/switch_row_name"
        android:text="Switch name"/>

    <TextView
        android:id="@+id/switch_lastSeen"
        android:layout_below="@id/switch_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/switch_row_lastSeen"
        android:text="@string/last_seen"/>

    <TextView
        android:id="@+id/switch_status"
        android:layout_below="@id/switch_lastSeen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/switch_row_level"
        android:text="@string/status"/>

    <ImageButton
        android:id="@+id/switch_button_up"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_arrow_up"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true" />

    <ImageButton
        android:id="@+id/switch_button_stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_stop"
        android:layout_toLeftOf="@+id/switch_button_down"
        android:layout_toStartOf="@+id/switch_button_down"
        android:layout_centerVertical="true" />

    <ImageButton
        android:id="@+id/switch_button_down"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_arrow_down"
        android:layout_toLeftOf="@+id/switch_button_up"
        android:layout_toStartOf="@+id/switch_button_up"
        android:layout_centerVertical="true" />

</RelativeLayout>

该行在我的手机上的外观(在 API 19 AVD 上相同):

Android Studio 在设计时如何显示该行:

【问题讨论】:

  • 尝试摆脱 android:layout_toStartOf。您也可以将这三个按钮放在另一个水平线性布局中,并使其对齐。但另一方面,任何有行的东西都应该使用 ListView 你不应该手动注入行
  • 谢谢,在行内添加一个 LinearLayout 就可以了。已经尝试不使用 layout_toStartOf 但这就是我第 15 次尝试解决该问题时 Android Studio 的 GUI 所做的。还将研究自定义 ListView 适配器!

标签: android xml android-relativelayout android-imagebutton


【解决方案1】:

试试这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp">

<TextView
    android:id="@+id/switch_name"
    style="@style/switch_row_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="Switch name" />

<TextView
    android:id="@+id/switch_lastSeen"
    style="@style/switch_row_lastSeen"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/switch_name"
    android:text="@string/last_seen" />

<TextView
    android:id="@+id/switch_status"
    style="@style/switch_row_level"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/switch_lastSeen"
    android:text="@string/status" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:orientation="horizontal">

    <ImageButton
        android:id="@+id/switch_button_up"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_arrow_up" />

    <ImageButton
        android:id="@+id/switch_button_stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_stop" />

    <ImageButton
        android:id="@+id/switch_button_down"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_arrow_down" />
</LinearLayout>
</RelativeLayout>

【讨论】:

  • 巧合地按照您之前的评论做到了这一点,并且成功了!谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-05-20
  • 2017-01-25
  • 2017-01-16
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
相关资源
最近更新 更多