两个旋转器彼此相邻

时间:2011-12-29 18:41:43

标签: android android-layout spinner android-spinner

当我把两个旋转器放在一起时,我遇到了这个问题。这是布局xml的片段:

...
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2" >

    <Spinner
        android:id="@+id/x"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top|left"
        android:layout_weight="1" />

    <Spinner
        android:id="@+id/y"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top|right"
        android:layout_weight="1" />
</LinearLayout>

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

    <ListView
        android:id="@+id/z"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#FFFFFF" >
    </ListView>
...
...

结果如下:

spinners

我尝试了很多不同的东西。我尝试过更改权重,重力,将父级更改为RelativeLayout,但结果保持不变。

请帮忙!

编辑:

确定。我知道了。一些冗余,但它解决了这个问题。有点奇怪为什么这个工作和“正常的方式”没有。感谢大家的帮助。

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2" >

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

    <RelativeLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1" >

        <Spinner
            android:id="@+id/y"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true" />
    </RelativeLayout>
</LinearLayout>

6 个答案:

答案 0 :(得分:5)

这对我来说很好用:

<LinearLayout
    android:id="@+id/x"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2">
    <Spinner
        android:id="@+id/s1"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
    <Spinner
        android:id="@+id/s2"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
</LinearLayout>

答案 1 :(得分:1)

在RelativeLayout中,您可以使用android:layout_toRightOf="@+id/x"android:layout_alignTop="@+id/x"

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout>
    <Spinner
        android:id="@+id/x"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <Spinner
        android:id="@+id/y"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/x"
        android:layout_alignTop="@+id/x" />
</RelativeLayout>

(我遗漏了引力定义,因为它们似乎对你的微调器中的文本没有影响。)

答案 2 :(得分:0)

我从未见过那个确切的问题,但我确实看到你们都用它们的宽度来填充父级,这可能会发生冲突。我会用android:layout_width="0dip"替换所有使用权重的元素来确定它的大小,这样它们实际上是相等的。

答案 3 :(得分:0)

替代解决方案对我有用。我将android:layout_gravity =“center_vertical”添加到spinner,如下所示:

 <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginTop="10dp"
                    android:orientation="horizontal" >

                    <Spinner
                        android:id="@+id/custSpinner"
                        style="@android:style/Widget.Spinner"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        />

                    <Spinner
                        android:id="@+id/busSpinner"
                        style="@android:style/Widget.Spinner"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        />
                </LinearLayout>

答案 4 :(得分:0)

//////您可以使用Spinner Widht Match Parent或0dp都可以使用

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

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

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

                    </LinearLayout>

答案 5 :(得分:-1)

虽然我看不出这个代码有什么问题,但我认为你不需要设置引力,因为wrap_content高度会自动将linearlayout放在顶部而左右不是这种情况,因为两个微调都是屏幕的一半宽度。

所以使用:

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

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