android - 尽管 layout_gravity 不同,为什么这两个元素仍然粘在一起?

标签 android

id 为 totalTimeView 的文本框和 id 设置为 ImageButton 的 layout_gravity 分别为 left|top 和 right|top,但它们在应用程序中仍然粘在一起。为什么会这样?下面是我的 Activity xml 文件,我附上了截图,在此先感谢。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="@color/light_blue"
    tools:context=".StoppedActivity">

    <TextView
        android:id="@+id/totalTimeView"
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_marginBottom="90dp"
        android:layout_gravity="left|top"
        android:background="@android:color/white"
        android:textColor="@color/started_black"
        />

    <TextView
        android:id="@+id/countDownView"
        android:layout_below="@+id/totalTimeView"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/white_circle"
        android:textColor="@color/started_black"
        android:gravity="center"
        android:textSize="65sp" />

    <ImageButton
        android:id="@+id/settings"
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_gravity="right|top"
        android:layout_toRightOf="@+id/totalTimeView"
        android:src="@drawable/ic_settings_black_24dp"
        android:scaleType="fitXY"
        />

    <ToggleButton
        android:id="@+id/toggleSwitch"
        android:gravity="center"
        android:background="@drawable/toggle_selector"
        android:layout_centerInParent="true"
        android:layout_below="@+id/countDownView"
        android:layout_marginTop="40dp"
        android:layout_width="300dp"
        android:layout_height="50dp" />

    <ImageButton
        android:id="@+id/startButton"
        android:background="@drawable/button_selector"
        android:layout_width="360dp"
        android:layout_height="70dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:layout_marginBottom="60dp"
        android:layout_gravity="bottom" />
</RelativeLayout>

最佳答案

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="@color/light_blue"
                tools:context=".StoppedActivity">

    <TextView
        android:id="@+id/totalTimeView"
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_marginBottom="90dp"
        android:layout_gravity="left|top"
        android:background="@android:color/white"
        android:textColor="@color/started_black"
        />

    <TextView
        android:id="@+id/countDownView"
        android:layout_below="@+id/totalTimeView"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/white_circle"
        android:textColor="@color/started_black"
        android:gravity="center"
        android:textSize="65sp" />

    <ImageButton
        android:id="@+id/settings"
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_gravity="right|top"
        android:src="@drawable/ic_settings_black_24dp"
        android:scaleType="fitXY"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"/>

    <ToggleButton
        android:id="@+id/toggleSwitch"
        android:gravity="center"
        android:background="@drawable/toggle_selector"
        android:layout_centerInParent="true"
        android:layout_below="@+id/countDownView"
        android:layout_marginTop="40dp"
        android:layout_width="300dp"
        android:layout_height="50dp" />

    <ImageButton
        android:id="@+id/startButton"
        android:background="@drawable/button_selector"
        android:layout_width="360dp"
        android:layout_height="70dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:layout_marginBottom="60dp"
        android:layout_gravity="bottom" />
</RelativeLayout>

您正在使用 android:layout_toRightOf="@+id/totalTimeView" (ImageButton),这就是它们彼此相连的原因。另外,你必须添加这两行

android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"

到您的 ImageButton 布局,以便将其移动到屏幕的最右侧。

关于android - 尽管 layout_gravity 不同,为什么这两个元素仍然粘在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33853371/

相关文章:

java - Android 应用程序问题(未运行)

没有根元素的Android自定义 View 布局声明

android - 仅限我所在国家/地区的 Google map ?

jquery - phonegap,连接到服务器失败

android - 如何在 Android 设备上运行 Matlab 代码?

android - 蓝牙文件夹,不同手机路径不同

java - 使用 Android (Java) 连接到开放网络

Android L(5.0)在eclipse中不搜索 “armeabi”或 "armeabi-v7a"文件夹(UnsatisfiedLinkError)中的原生库

java - while 无法循环

android - 在新的 Android 开发者控制台中发布之前是否可以更新 APK 和商品列表?