2011-08-09 98 views
3

我想複製一個微調控件(請不要問爲什麼)我正在努力與分頻器。假旋轉器看起來很好,直到我將分頻器添加到imageview的左側。一旦我添加分隔線,它的高度就會填滿屏幕的其餘部分。有人可以解釋這個嗎?android:fill_parent子視圖填充屏幕

下面的XML:

.......

 <Spinner 
      android:id="@+id/equipment_spinner" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 
     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true"/> 
      <ImageView 
       android:id="@+id/spinner_arrow" 
       android:layout_width="45sp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/spinner_arrow"/> 
     </RelativeLayout> 
    </LinearLayout>  
</ScrollView> 

產生以下屏幕:

enter image description here

一旦我添加分頻器, xml看起來像這樣:

 <Spinner 
      android:id="@+id/equipment_spinner" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 
     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true"/> 
      <ImageView 
       android:id="@+id/spinner_arrow" 
       android:layout_width="45sp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/spinner_arrow"/> 
      <View 
       android:background="#e7ebe7" 
       android:layout_width="1dip" 
       android:layout_height="fill_parent" 
       android:layout_toLeftOf="@id/spinner_arrow"/> 
     </RelativeLayout> 
    </LinearLayout>  
</ScrollView> 

產生如下畫面:

enter image description here enter image description here 誰能發現我做錯了什麼在這裏...

+0

我已經投了你的問題 - 如果其他人也這樣做,你會有足夠的代表發佈圖像。 – Squonk

+0

已投票,請張貼圖片 – Rob

回答

2

你應該使用九貼片圖像f或者這不是使用多個視圖。這是默認的Spinner所做的。我不知道你爲什麼要創建一個新的微調,但如果你保持相同的視覺效果,你可以重新使用內置圖像。

android.R.layout.simple_spinner_item是一個可以重複使用的TextView佈局。或者,您可以直接使用背景:android.R.drawable.btn_dropdown,這是一個可用每個狀態的位圖繪製的XML選擇器。更多細節可在Android源代碼中找到。

+0

不錯的建議......我用了一個選擇器,並忘記了這種方法..有時你會朝着方向前進,忘記思考不同......感謝重定向......順便說一句,我正在這樣做將一個多選旋鈕一起縫合......幾乎在那裏......再次感謝 – user806821

1

您已設置高度爲填補父填充相對佈局的其餘部分。您是否嘗試過把視圖按鈕或ImageView的內部如下:

<Button 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true"> 
     <View 
      android:background="#e7ebe7" 
      android:layout_width="1dip" 
      android:layout_height="fill_parent" 
      android:layout_toLeftOf="@id/spinner_arrow"/> 
</Button> 
     <ImageView 
      android:id="@+id/spinner_arrow" 
      android:layout_width="45sp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/spinner_arrow"/> 
    </RelativeLayout> 

OR

<Button 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true"/> 
     <ImageView 
      android:id="@+id/spinner_arrow" 
      android:layout_width="45sp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/spinner_arrow"> 
      <View 
      android:background="#e7ebe7" 
      android:layout_width="1dip" 
      android:layout_height="fill_parent" 
      android:layout_toLeftOf="@id/spinner_arrow"/> 
</ImageView> 
    </RelativeLayout> 

如果這does not工作嘗試相對佈局的高度設置爲一個固定的數額一樣10 dip或spinner那麼大......你可能必須嘗試一個不同的大小,只是不要留下相關的佈局作爲包裝內容

+0

它的單像素寬線應該從頂部到底部延伸...寬度不是問題...它的fill_parent爲高度...我認爲fill_parent應該只是展開以填充直接父母容器 – user806821

+0

...在這種情況下,它的相對佈局沒有設置爲fill_parent – user806821

+0

我不認爲把imageview放在按鈕中會膨脹...按鈕不是viewgroup ...我會試試它。 – user806821