当我使用非常长的文本制作微调器时,通常显示所选文本和三角形图像(▼)的微调器按钮(不是下拉菜单)不显示三角形图像。 我测试了普通(android.R.layout.simple_spinner_item)布局和多行布局。 但两者都没有。
微调按钮的右侧是窗口的外侧。 (抱歉,我无法附加图片,因为我是新用户。)
消息来源如下;
SpinnerTestActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class SpinnerTestActivity extends Activity {
String[] mStrings = {"verrrrrrrrrry looooooooooooooong",
"abc loooooooooooooooooooooooooong",
"xyz"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner spinner = (Spinner)findViewById(R.id.spinner1);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mStrings);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.multiline_spinner_item, mStrings);
spinner.setAdapter(adapter);
}
}
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
multiline_spinner_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />
答案 0 :(得分:1)
感谢您对我的问题的意见。
我找到了答案。
添加
spinner.getLayoutParams().width = spinner.getWidth();
后
spinner.setAdapter(adapter);
答案 1 :(得分:0)
您是否在Android android:prompt
控制器中定义了Spinner
属性?
它会帮助你。请参阅以下代码:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/planet_prompt"
/>
您可以参考以下链接:Can an Android AsyncTask doInBackground be synchronized to serialize the task execution?