我的第一个(旧的)Android应用程序(Suspension Calculator)显示一个问题我无法找到解决方案:某些微调器上的微调器控件在不需要的位置显示透明线。模式是这样的:从第一个微调控件开始,每个其他微调器都有这个问题。因此,虽然微调器2,4,6,...没有不需要的线,但是微调器1,3,5 ......都有它们。
下图(下面的链接)首先显示处于选定状态的微调器,并在红色分隔符后显示处于未选择状态。在选定状态下,透明线处于整个控件的基线高度,除了按钮文本可以在的某些位置。在未选择状态下有点不同。
我无法直接提供图片:
[...]作为垃圾邮件预防机制,新的 用户不得发布图片。
但我可以给你一个链接:
Screenshot that illustrated the graphical spinner problem
res/layout
下的XML文件如下所示:
<ScrollView ...>
<TableLayout ...>
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/units"
android:gravity="center_vertical"
android:paddingRight="5dp"
/>
<Spinner
android:id="@+id/unit_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
/>
</TableRow>
...
</TableLayout>
</ScrollView>
至少从Froyo(Android 2.2)开始,我就看到了这个问题。在早期版本(至少是Android 1.6)中,它不存在。它在Eclipse的Graphical Layout编辑器中不存在,但我看到它在手机和模拟器中运行应用程序 - 这至少是一致的,并暗示我正在做的事情是由于不做正确的事情; - )。
答案 0 :(得分:1)
实际上我可以在Android 2.3上重现这种行为。在Android 2.2及更低版本上无法使用。
将Spinner放在TableLayout或RelativeLayout中并不重要。同样的问题..
只有获得线条的解决方案是在微调器之间放置一个1px-View:
<Spinner android:layout_height="wrap_content" android:id="@+id/spinnerDriver"
android:layout_width="match_parent" android:layout_below="@id/driverDesc" />
<View android:id="@+id/helper" android:layout_height="1px"
android:layout_width="match_parent" android:layout_below="@id/spinnerDriver" />
<Spinner android:layout_height="wrap_content" android:id="@+id/spinnerDriver1"
android:layout_width="match_parent" android:layout_below="@id/helper" />
这实际上是一个非常非常非常丑陋的解决方案,但它对我有用......