Android;如何在其他小部件保持左对齐时右对齐按钮
Android; How to Right Justify Buttons while other widgets stay Left Justified
我是 Android 的新手,我的应用终于可以运行了,但是我在布局方面遇到了问题。
下面的 xml
被精简了,但我标记它的地方 <repeats>
我有 4 个水平布局。
每个都有不同的小部件 Spinner
、SeekBar
和 RadioButtons
,全部由分隔符分隔。
每选择一个设置,然后按右侧的 Set
按钮。
我的问题是,虽然所有小部件都整齐地左对齐,但按钮的垂直对齐到处都是。
如果我只是玩小部件边距,它将不适合不同的 Android 设备。
如何让 Buttons
垂直向右排列而不从左侧移动所有其他内容?
GETTING WANT
------------------------------- --------------------------------
| <Spinner> <button> | | <Spinner> <button> |
| < -------- Divider --------> | | < -------- Divider --------> |
| <RadioButton > <button> | | <RadioButton> <button> |
| < -------- Divider --------> | | < -------- Divider --------> |
| <SeekBar> <button> | | <SeekBar> <button> |
| < -------- Divider --------> | | < -------- Divider --------> |
| <RadioButton> <button> | | <RadioButton> <button> |
------------------------------- --------------------------------
这是我的相关代码:
content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
tools:context=".MainActivity"
tools:showIn="@layout/activity_main">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:scrollY="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<repeats> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/dynamic_TZ_spinner"
android:layout_width="223dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp20"
android:layout_marginRight="@dimen/dp20" />
<Button
android:id="@+id/TZ_btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/set" />
</LinearLayout>
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginTop="@dimen/dp10"
android:background="?android:attr/listDivider"
android:visibility="visible" />
....
</LinearLayout>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
您可以为每个小部件和按钮(列)使用线性布局
试试这个:-
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
tools:context=".MainActivity"
tools:showIn="@layout/activity_main">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:scrollY="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<repeats> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/dynamic_TZ_spinner"
android:layout_width="223dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="@dimen/dp20"
android:layout_marginRight="@dimen/dp20" />
<Button
android:id="@+id/TZ_btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/set" />
</RelativeLayout>
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginTop="@dimen/dp10"
android:background="?android:attr/listDivider"
android:visibility="visible" />
....
</LinearLayout>
</RelativeLayout>
您可以使用子项中的 FrameLayout
和 layout_gravity
属性来实现它。
一排使用:
<FrameLayout
android:padding="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:text="Radio Button" />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:text="Button" />
</FrameLayout>
请试试这个方法,注意当你想把一个小部件放在他们[=15=的右边或左边时,使用“android:layout_alignParentRight="true"”或“android:layout_alignParentLeft="真" "
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center_vertical"
tools:scrollY="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/dynamic_TZ_spinner"
android:layout_width="223dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_margin="@dimen/dp20" />
<Button
android:id="@+id/TZ_btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="@dimen/dp20"
android:text="@string/set" />
</RelativeLayout>
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginTop="10dp"
android:background="?android:attr/listDivider"
android:visibility="visible" />
....
</LinearLayout>
</RelativeLayout>
我是 Android 的新手,我的应用终于可以运行了,但是我在布局方面遇到了问题。
下面的 xml
被精简了,但我标记它的地方 <repeats>
我有 4 个水平布局。
每个都有不同的小部件 Spinner
、SeekBar
和 RadioButtons
,全部由分隔符分隔。
每选择一个设置,然后按右侧的 Set
按钮。
我的问题是,虽然所有小部件都整齐地左对齐,但按钮的垂直对齐到处都是。
如果我只是玩小部件边距,它将不适合不同的 Android 设备。
如何让 Buttons
垂直向右排列而不从左侧移动所有其他内容?
GETTING WANT
------------------------------- --------------------------------
| <Spinner> <button> | | <Spinner> <button> |
| < -------- Divider --------> | | < -------- Divider --------> |
| <RadioButton > <button> | | <RadioButton> <button> |
| < -------- Divider --------> | | < -------- Divider --------> |
| <SeekBar> <button> | | <SeekBar> <button> |
| < -------- Divider --------> | | < -------- Divider --------> |
| <RadioButton> <button> | | <RadioButton> <button> |
------------------------------- --------------------------------
这是我的相关代码:
content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
tools:context=".MainActivity"
tools:showIn="@layout/activity_main">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:scrollY="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<repeats> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/dynamic_TZ_spinner"
android:layout_width="223dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp20"
android:layout_marginRight="@dimen/dp20" />
<Button
android:id="@+id/TZ_btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/set" />
</LinearLayout>
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginTop="@dimen/dp10"
android:background="?android:attr/listDivider"
android:visibility="visible" />
....
</LinearLayout>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
您可以为每个小部件和按钮(列)使用线性布局
试试这个:-
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
tools:context=".MainActivity"
tools:showIn="@layout/activity_main">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:scrollY="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<repeats> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/dynamic_TZ_spinner"
android:layout_width="223dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="@dimen/dp20"
android:layout_marginRight="@dimen/dp20" />
<Button
android:id="@+id/TZ_btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/set" />
</RelativeLayout>
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginTop="@dimen/dp10"
android:background="?android:attr/listDivider"
android:visibility="visible" />
....
</LinearLayout>
</RelativeLayout>
您可以使用子项中的 FrameLayout
和 layout_gravity
属性来实现它。
一排使用:
<FrameLayout
android:padding="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:text="Radio Button" />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:text="Button" />
</FrameLayout>
请试试这个方法,注意当你想把一个小部件放在他们[=15=的右边或左边时,使用“android:layout_alignParentRight="true"”或“android:layout_alignParentLeft="真" "
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center_vertical"
tools:scrollY="?android:attr/scrollbarSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/dynamic_TZ_spinner"
android:layout_width="223dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_margin="@dimen/dp20" />
<Button
android:id="@+id/TZ_btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="@dimen/dp20"
android:text="@string/set" />
</RelativeLayout>
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginTop="10dp"
android:background="?android:attr/listDivider"
android:visibility="visible" />
....
</LinearLayout>
</RelativeLayout>