我正在使用微调器,并在所有选项中填充了下拉菜单。我遇到的问题是,当出现下拉菜单时,它会阻止当前选择的内容。
这是一张展示的图片和我的代码:
if(field.getType().equalsIgnoreCase("select"))
{
CSSelect select = (CSSelect) field;
LinearLayout ll = new LinearLayout(this);
final Spinner s = new Spinner(this);
TextView t = new TextView(this);
t.setText("▼");
t.setTextSize(12);
t.setBackgroundResource(R.drawable.spinnerbg);
t.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
s.performClick();
}
});
LinearLayout.LayoutParams slp = new LinearLayout.LayoutParams(400, LinearLayout.LayoutParams.WRAP_CONTENT);
s.setLayoutParams(slp);
ll.addView(s);
ll.addView(t);
s.setBackgroundResource(R.drawable.spinnerbg);
List<String> list = new ArrayList<String>();
JSONArray choices = select.getChoices();
for(int j = 0; j < choices.length(); j++)
{
JSONObject jObj = choices.getJSONObject(j);
String st = jObj.getString("text");
list.add(st);
}
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
R.layout.spinner_item, list);
dataAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
s.setAdapter(dataAdapter);
rscroll.addView(ll, lp);
}
Spinner下拉项目xml:
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textSize="12dp"
android:textColor="#000000"/>
Spinner item xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#000000"
/>
我如何从上面的A到B?我用什么代码移动下面的下拉菜单?
答案 0 :(得分:2)
将微调器模式从对话框设置为下拉列表:
<Spinner
android:id="@+id/tv_power_settings_type_spinner"
style="@android:style/Widget.Spinner"
android:spinnerMode="dropdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:popupBackground="@color/black"/>
使用代码执行此操作:
new Spinner(this, Spinner.MODE_DROPDOWN)
答案 1 :(得分:2)
只需在XML中将以下属性添加到Spinner:
机器人:overlapAnchor = “假”