两个Spinners 50%的RelativeLayout宽度 - 没有嵌套的LinearLayout

时间:2014-05-27 13:41:31

标签: android android-layout relativelayout android-spinner

我有这样的布局,但无法让那些spinner获得50%的RelativeLayoutrs_branchesrs_education)。我尝试将layout_width调整为其他值,但没有帮助。有什么建议吗?

我不想使用嵌套的LinerLayouts,因为我需要以类似的方式展开第二个ScrollView,因为这个填充了。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/rs_sv1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/rs_name"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:hint="@string/rs_question_hint" />

            <Spinner
                android:id="@+id/rs_dates"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@id/rs_name"
                android:layout_toLeftOf="@+id/rs_times"
                />

            <Spinner
                android:id="@id/rs_times"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_below="@id/rs_name"
                />

            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/rs_times"
                android:text="@string/rs_simple_search" />
        </RelativeLayout>
    </ScrollView>

    <ScrollView
        android:id="@+id/rs_sv2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <!-- ... -->

        </RelativeLayout>

    </ScrollView>

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

我不理解你的意思:

  

&#34;我不想使用嵌套的LinerLayouts,因为我需要   以类似的方式展开第二个ScrollView,因为这个填充了。&#34;

使用linearLayout的解决方案是:

<RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/rs_name"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:hint="@string/rs_question_hint" />

            <LinearLayout 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_below="@id/rs_name" >

                 <Spinner
                    android:id="@+id/rs_dates"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                  />

                 <Spinner
                    android:id="@id/rs_times"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                  />
              </LinearLayout>

              ...

这是一个没有添加 LinearLayout 的解决方案:

(通过添加&#39; centerHorizo​​ntal =&#34; true&#34;&#39;)

的空视图与relativeLayout的中心对齐

        <EditText
            android:id="@+id/rs_name"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="@string/rs_question_hint" />
        <View
             android:id="@+id/rs_centered" 
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_centerHorizontal="true"
        />
        <Spinner
            android:id="@+id/rs_dates"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/rs_name"
            android:layout_toLeftOf="@+id/rs_centered"
            />

        <Spinner
            android:id="@id/rs_times"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_toRightOf="@+id/rs_centered"
            android:layout_below="@id/rs_name"
            />

它应该有效,如果它没有,请告诉我。

答案 1 :(得分:-1)

您可以在java代码中设置微调器的宽度。只需获得屏幕宽度并设置为50%即可。 您应该在方法Activity.onCreate()

中执行此操作