为什么我的微调器太可怕了?

时间:2012-08-31 14:42:05

标签: android android-layout android-spinner

我有一个看起来像极端丑陋的微调器: here is my image http://i47.tinypic.com/5n6dj7.png

当我点击它时看起来好一点: here is my image http://i50.tinypic.com/653jnk.png

但是,在默认情况下,它甚至看起来不像一个微调器。任何想法我怎样才能改善它的外观?

以下是代码:

adapter=new SpinAdapter(this,com.Orange.R.layout.spinnerrowlist,spinnerInfo);
adapter.setDropDownViewResource(com.Orange.R.layout.multiline_spinner_dropdown_item);
previousVisitCommentsSpinner.setAdapter(adapter);

spinnerrowlist.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:background="#FFFFFF"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textview_spinner1"
        style="?android:attr/spinnerItemStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:layout_alignParentLeft="true"
        android:textColor="@drawable/textorange_selected" />

    <TextView
        android:id="@+id/textview_spinner2"
        style="?android:attr/spinnerItemStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_toRightOf="@+id/textview_spinner1"
        android:paddingLeft="5dp"
        android:textColor="@drawable/textorange_selected" />

    <TextView
        android:id="@+id/textview_spinner3"
        style="?android:attr/spinnerItemStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:paddingLeft="5dp"
        android:textColor="@drawable/textorange_selected" />

</RelativeLayout>

这是微调器:

<Spinner
    android:id="@+id/previousVisitComments"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_below="@+id/previousvisit"
    android:layout_marginTop="15dp"
    android:background="@drawable/spinner_selector"
    android:textColor="@color/medium_orange"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

微调器中的项目应位于同一行,这就是我使用水平布局的原因! 谢谢你的回答!

3 个答案:

答案 0 :(得分:1)

尝试添加此

android:layout_toRightOf="@+id/textview_spinner1 

你还可以添加以下内容,看它是否有所作为

android:layout_below 

让我知道它是怎么回事:)

答案 1 :(得分:1)

  

微调器中的项目应该在同一条线上,这就是我使用水平布局的原因!

问题是你正在尝试将大量文本挤入狭窄的区域。但是你有两个选择:

首先使用您拥有的内容,只需将layout_toLeftOf属性添加到textview_spinner2

<TextView
    android:id="@+id/textview_spinner2"
    style="?android:attr/spinnerItemStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_toLeftOf="@+id/textview_spinner3"
    android:layout_toRightOf="@+id/textview_spinner1"
    android:paddingLeft="5dp" />

另外你说你使用a horizontal layout但是RelativeLayout没有属性orientation,所以这一行什么都不做:

android:orientation="horizontal"

子元素的组织由以下各个属性决定:layout_toLeftOflayout_toRightOflayout_above等。

第二次如果您的RelativeLayout以不守规矩的方式运行并且您拥有这样的简单布局,则可以随时切换到LinearLayout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp" >

    <TextView
        android:id="@+id/textview_spinner1"
        style="?android:attr/spinnerItemStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:textColor="@drawable/textorange_selected" />

    <TextView
        android:id="@+id/textview_spinner2"
        style="?android:attr/spinnerItemStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="5dp"
        android:textColor="@drawable/textorange_selected" />

    <TextView
        android:id="@+id/textview_spinner3"
        style="?android:attr/spinnerItemStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingLeft="5dp"
        android:textColor="@drawable/textorange_selected" />

</LinearLayout>

现在,Spinner中没有任何列重叠。

答案 2 :(得分:1)

您可以在Java代码中尝试(android.R.layout.simple_spinner_dropdown_item)。而不是这个(com.Orange.R.layout.multiline_spinner_dropdown_item)希望这会有所帮助。