问题
I have code like this:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
>
<LinearLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Points to win"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
Currently it looks like that:
I would like to move Spinner to the right side of the LinearLayout. I tried to use:
android:gravity="right"
and
android:gravity="end"
and
android:layout_gravity="right"
and
android:layout_gravity="end"
but it didn't help. Is there any other option to move it to the right? What's also important I want to keep parent layout as Linear (oriented vertically) and current layout as Linear (oriented horizontally).
回答1:
I suggest to use RelativeLayout
to this logic:
<RelativeLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Points to win"
android:layout_alignParentLeft="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"/>
</RelativeLayout>
By parent alignments properties (i.e. layout_alignParentLeft, layout_alignParentRight) you can place components to prefered place
回答2:
Hey check this code.
<LinearLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Points to win"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
Hope this help.Happy coding.
回答3:
please use relative layout instead of linear layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
>
<RelativeLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="match_parent"
android:layout_gravity="right"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Points to win"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
</LinearLayout>
回答4:
Set layout_width
of Spinner and set layout_weight
to TextView.
<LinearLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Points to win"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_width="50dp"
android:layout_height="wrap_content"/>
</LinearLayout>
回答5:
try this its your code i have updated a bit.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
>
<LinearLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:orientation="horizontal">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Points to win"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
here is the screenshot it works well as
http://screencast.com/t/kD5y6PlVi
回答6:
Just channge following changes in your code.
In TextView
layout_width="0dp"
layout_weight="1"
See Code.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp">
<LinearLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textView$_points_to_win"
android:layout_width="0dp"
android:layout_height="wrap_content"
layout_weight="1"
android:text="Points to win"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Spinner
android:id="@+id/spinner$_points_to_win"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
回答7:
Change your LinearLayout to the following:
<LinearLayout
android:id="@+id/relativeLayoutforPRICE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
来源:https://stackoverflow.com/questions/41394169/how-to-move-spinner-in-linearlayout-to-right