我正在尝试创建此用户界面:
hard to build UI http://i61.tinypic.com/ifzlz5.png
也就是说,左侧有一个TextView,右侧有一个Spinner。两者都用一行加下划线。 Spinner默认样式已经下划线(带有样式和背景图像)。因此,任务是以某种方式继续使用TextView。
需要你的帮助,伙计们!
答案 0 :(得分:2)
// example main
public class MyActivity extends Activity {
private Spinner spinner;
private TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner = (Spinner) findViewById(R.id.spinner);
text = (TextView) findViewById(R.id.text);
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_spinner_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
}
//示例R.layout.custom_spinner_item
<?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="true"
android:gravity="right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />
//示例R.layout.main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!--stuff-->
<View
android:id="@+id/anotherField1"
android:layout_width="match_parent"
android:layout_height="40dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:spinnerStyle"
android:addStatesFromChildren="true"
>
<TextView
android:layout_alignParentLeft="true"
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text Left" />
<Spinner
android:id="@+id/spinner"
android:layout_alignParentRight="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
/>
</RelativeLayout>
<!--stuff-->
<View
android:id="@+id/anotherField2"
android:layout_width="match_parent"
android:layout_height="40dp" />
</LinearLayout>
结果:
答案 1 :(得分:1)
为微调器使用样式,图片中使用的样式为:
风格=&#34; @android:风格/ Widget.Holo.Light.Spinner&#34;
答案 2 :(得分:0)
您可以为Spinner编写自己的SpinnerAdapter(为此,您应extend BaseAdapter
)。实现getView()
以定义微调器显示为所选项的视图。实现getDropDownView()
以定义微调器下拉列表显示的视图。您可以轻松地getView()
返回类似LinearLayout
的内容,以便在左侧和右侧显示文字。
答案 3 :(得分:0)
以下链接为我工作。
https://android--code.blogspot.in/2015/08/android-spinner-border-between-items.html
RES /抽拉/ spinner_item_border.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#ff2632"/>
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="#d7ffa2"/>
</shape>
</item>
然后
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@drawable/spinner_item_border"
/>