Android自定义微调器

时间:2012-02-22 00:35:55

标签: android android-layout spinner android-custom-view android-spinner

我有一个自定义微调器,它使用两个自定义视图,一个用于下拉列表,另一个用于当前选定的项目。

我的问题是,当前所选项目的自定义视图始终至少与微调框列表中的最长项目一样宽,并且在我的自定义视图的左侧留下了相当大的间隙。如果我从微调器中选择最长的项目,则间隙消失。我已经尝试了android:gravity =“left”用于我的自定义视图。另请注意,这似乎只是Android 3.0+的一个问题。

This shows the gap when a short spinner entry is selected

Notice no gap is present between the icon and folder name

以下是我的自定义微调器视图的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/folder_detail" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_width="wrap_content">

<TextView android:text="Folder Name" 
    android:id="@+id/folder_name" android:textColor="#ffffff"
    android:layout_width="wrap_content" android:textSize="16sp"
    android:textStyle="bold"
    android:layout_height="wrap_content" android:layout_marginTop="0dp">
</TextView>

    <TextView android:id="@+id/folder_count" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="13sp"  android:text="(0) " android:textColor="@color/light_blue" android:layout_marginLeft="2dp"/>


<ImageView android:id="@+id/icon" android:src="@android:drawable/arrow_down_float" 
    android:layout_marginRight="1dp" android:scaleType="fitXY"
    android:layout_gravity="bottom" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
 </LinearLayout> 

1 个答案:

答案 0 :(得分:2)

这是故意的。当选择发生变化时,它可以防止微调器大幅改变大小。

您并不打算在项目视图中包含箭头;这通常作为旋转器本身的背景9补丁的一部分包含在内。微调器本身的重力设置控制微调器内所选项目视图的对齐。 Holo主题将其与左侧对齐,而传统主题则横向居中。