Android Studio 如何在Kotlin中并排使用两个单选按钮

d8tt03nd  于 2022-11-16  发布在  Android
关注(0)|答案(1)|浏览(273)

我在Kotlin中排列视图时遇到了一些问题,因此我有两个并排的单选按钮。我还想将“amountPicker”也推到右边。如果您有任何帮助,我们将不胜感激。因为我就是想不出来。提前谢谢你。我已经尝试了很多不同的方法,但是我就是不能得到我想要的结果。我正在查看的区域是numberPicker和RadioGroup。
下面是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="org.wit.hikingtrails.activities.HikeActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appBarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent"
            android:fitsSystemWindows="true"
            app:elevation="0dip"
            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbarAdd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:titleTextColor="@color/colorPrimary" />
        </com.google.android.material.appbar.AppBarLayout>

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/appBarLayout"
            android:fillViewport="true">

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

                <EditText
                    android:id="@+id/hikeName"
                    android:layout_width="match_parent"
                    android:layout_height="45dp"
                    android:layout_margin="8dp"
                    android:autofillHints=""
                    android:hint="@string/hint_hikeName"
                    android:inputType="text"
                    android:maxLength="25"
                    android:maxLines="1"
                    android:padding="8dp"
                    android:textColor="@color/colorPrimaryDark"
                    android:textSize="14sp" />

                <EditText
                    android:id="@+id/description"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="8dp"
                    android:hint="@string/hint_hikeDescription"
                    android:inputType="text"
                    android:maxLength="25"
                    android:maxLines="1"
                    android:padding="8dp"
                    android:textColor="@color/colorPrimaryDark"
                    android:textSize="14sp" />

                <Button
                    android:id="@+id/chooseImage"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="16dp"
                    android:background="@color/colorAccent"
                    android:paddingTop="8dp"
                    android:paddingBottom="8dp"
                    android:text="@string/button_addImage"
                    android:textColor="@color/colorPrimary"
                    android:textSize="16sp" />

                <ImageView
                    android:id="@+id/hikeImage"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:srcCompat="@mipmap/ic_launcher" />

                <Button
                    android:id="@+id/hikeLocation"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="16dp"
                    android:background="@color/colorAccent"
                    android:paddingTop="8dp"
                    android:paddingBottom="8dp"
                    android:stateListAnimator="@null"
                    android:text="@string/button_location"
                    android:textColor="@color/colorPrimary"
                    android:textSize="16sp" />

                <TextView
                    android:id="@+id/hikeSubtitle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/donateTitle"
                    android:layout_alignEnd="@+id/donateTitle"
                    android:layout_alignParentStart="true"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="8dp"
                    android:text="@string/hikeSubtitle"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <RadioGroup
                    android:id="@+id/difficultyLevel"
                    android:layout_width="328dp"
                    android:layout_height="128dp"
                    android:layout_above="@+id/progressBar"
                    android:layout_alignParentStart="true">

                    <RadioButton
                        android:id="@+id/Hard"
                        android:layout_width="99dp"
                        android:layout_height="wrap_content"
                        android:checked="true"
                        android:text="@string/hard" />

                    <RadioButton
                        android:id="@+id/Intermediate"
                        android:layout_width="168dp"
                        android:layout_height="wrap_content"
                        android:checked="false"
                        android:text="@string/intermediate" />
                </RadioGroup>

                <NumberPicker
                    android:id="@+id/amountPicker"
                    android:layout_width="wrap_content"
                    android:layout_height="121dp"
                    android:layout_alignEnd="@+id/donateSubtitle"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="8dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.973"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_bias="0.333" />

                <ProgressBar
                    android:id="@+id/progressBar"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="349dp"
                    android:layout_height="14dp"
                    android:layout_above="@+id/donateButton"
                    android:layout_alignEnd="@+id/donateSubtitle"
                    android:layout_alignParentStart="true"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="8dp"
                    android:indeterminate="false"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.526"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_bias="0.7" />

                <TextView
                    android:id="@+id/distance"
                    android:layout_width="267dp"
                    android:layout_height="38dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="8dp"
                    android:text="@string/distance" />

                <TextView
                    android:id="@+id/difficulty"
                    android:layout_width="265dp"
                    android:layout_height="38dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="8dp"
                    android:text="@string/difficulty" />

                <Button
                    android:id="@+id/btnAdd"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="16dp"
                    android:background="@color/colorAccent"
                    android:paddingTop="8dp"
                    android:paddingBottom="8dp"
                    android:stateListAnimator="@null"
                    android:text="@string/button_addHike"
                    android:textColor="@color/colorPrimary"
                    android:textSize="16sp" />

            </LinearLayout>
        </ScrollView>

    </RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

[![This is how the view currently looks][1]][1]

  [1]: https://i.stack.imgur.com/b1nTN.png
nx7onnlm

nx7onnlm1#

在您的RadioGroup上使用android:orientation="horizontal"-它只是一个LinearLayout。
您的NumberPicker定义了一系列ConstraintLayout定位属性,但它不是ConstraintLayout内-其父级是 * LinearLayout *(ScrollView内部的那个)所以这些东西都不起作用。你必须使用LinearLayout支持的属性,比如layout_gravity,把它对齐到一边,或增加marginpadding(或两者-与边缘对齐,使用边距将其推离边缘)。
如果你真的想使用这些ConstraintLayout属性(并且你在布局中有一些东西使用它们,比如ProgressBar),你必须把你的LinearLayout换成ConstraintLayout。这样你就可以对定位有更多的控制!

相关问题