2011-12-29 207 views
3

當我將兩個紡紗器放在海綿旁時,我遇到了這個問題。這裏是佈局的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> 
+0

我無法重現您遇到的問題。你是否試過剝離除了兩個相鄰的spinners之外的所有東西 - 所以只有一個LinearLayout作爲root和兩個spinners?另外,您是否在Eclipse的預覽版中以及實際的設備/仿真器中遇到了這個問題? – 2011-12-29 19:52:03

回答

0

我從來沒有看到確切的問題,但我看到你既填補了家長及其寬度,這可能會發生衝突。我會用android:layout_width="0dip"替換所有使用重量的元素來確定它的大小,這樣他們實際上是相等的。

+0

我剛換了它。沒有幫助不幸。讓我補充一點,這個問題也出現在風景中。 – Paul 2011-12-29 18:50:59

+0

很抱歉聽到這個問題,我提出了這個問題,希望它能得到回覆。 – Pyrodante 2011-12-29 18:53:03

+0

謝謝。我也這樣希望。 – Paul 2011-12-29 19:26:58

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> 

(我已經離開了重力定義,因爲他們似乎並沒有對您的微調文字的效果。)

+0

試過了。完全使用您給出的解決方案產生以下結果:第一個(最左邊的)微調器填充父項,將另一個推離屏幕。此外,切換到橫向會導致發生異常。例外說android不能找到「y」(「y」是第二個(最右邊的))微調。 – Paul 2011-12-29 19:31:50

+0

我試着爲第一個微調器設置一個固定的寬度。這工作。但是現在我沒有讓他們每人填充父母寬度的50%。此外,我上面提到的例外仍然存在。 – Paul 2011-12-29 19:35:00

-1

雖然我不能看到這段代碼有什麼問題,但我認爲你不需要設置引力,因爲wrap_content高度會自動將頂點和左右的線性佈局放在頂部,左右不是這種情況,因爲兩個spinners都是屏幕的一半寬度。

所以要用:

<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" /> 

+0

不是。同樣的問題。不過謝謝。 – Paul 2011-12-29 19:28:30

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> 
0

替代解決方案,它爲我工作。我添加了android:layout_gravity =「center_vertical」到微調如下:

<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>