旋转器与多行项上重叠的Froyo选中的项目显示(Spinner with multi-line it

2019-08-18 21:16发布

我试图创建纱厂看起来相同Android上的所有版本回到升级Froyo。 为此,我使用HoloEverywhere 。 一些微调项文本的不止一个行,我想它来包装。

使用默认的布局, android.R.layout.simple_spinner_dropdown_item ,或HoloEverywhere的Drop-in替代它 ,ellipsizes包裹它的文字。

服用HoloEverywhere的布局为出发点,在自定义布局singleLine设置为falseellipsize设置为none ,并layout_height设置为wrap_content没有帮助,文本仍切断。

可以通过包装给下拉列表中正确地自动换行TextViewLinearLayout ,但在设备升级Froyo这打乱了所选项目的显示:

此方法适用于新设备的罚款。 下拉项目布局上的所有设备的罚款。 但是,当我使用自定义下拉项目布局的Froyo做这种怪异的文本重叠。 每个选择刚刚被堆在最后一个的顶部。

这个问题: 微调不换行文字-这是一个Android的bug? 在纱厂关于文本换行显示,只有这样,才能做到这一点是从头开始重新创建造型没有继承,但是这听起来很疯狂,容易出现问题。

my_simple_list_item_1.xml:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="300dp"
  android:layout_height="wrap_content" >   

  <TextView
    android:id="@+id/android:text1"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:ellipsize="marquee"
    android:layout_gravity="center_vertical"
    android:singleLine="false"/>
</LinearLayout> 

Java的:

    import org.holoeverywhere.widget.Spinner;

    spinner1.setAdapter(ArrayAdapter.createFromResource(this,
            R.array.array_of_strings, R.layout.my_simple_list_item_1));

Answer 1:

我找到了解决办法。 该文本被包裹的纺纱初始显示只能处理textviews,我找到了另一种解决方案推荐使用的线性布局。 这使得微调的下拉列表看起来是正确的。 事实证明适配器有一个名为setDropDownViewResource()资源,它允许您设置的下拉比什么是显示在微调的选择了不同的看法。

 import org.holoeverywhere.widget.Spinner;

 ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this,R.array.array_of_strings,R.layout.simple_list_item_1);
 adapter1.setDropDownViewResource(R.layout.my_simple_list_item_1);
 spQ1.setAdapter(adapter1);

在这个例子中simple_list_item是由机器人和mY_simple_list_item提供的默认视图是

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="300dp"
android:layout_height="wrap_content" >   

<TextView
  android:id="@+id/android:text1"
  android:layout_width="wrap_content"
  android:layout_height="50dp"
  android:ellipsize="marquee"
  android:layout_gravity="center_vertical"
  android:singleLine="false"/>

</LinearLayout> 

现在微调的下拉列表视图中,并在纺纱文字环绕显示的选择。



Answer 2:

听起来像你推上坡。 我的猜测是,你的客户将永远无法得到与包裹文字100%可靠和一致的结果。

请参阅: 微调不换行文字-这是一个Android的bug?



文章来源: Spinner with multi-line items overlaps selected item display on Froyo