0
点赞
收藏
分享

微信扫一扫

Android(二十六):Spinner 列表下拉选择框

嚯霍嚯 2022-07-14 阅读 40


展示

Android(二十六):Spinner 列表下拉选择框_xml

源码

  • 主布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f8f9f8"
android:padding="10dp">

<TextView
android:id="@+id/text_00"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="spinnerMode(dropdown)" />

<Spinner
android:id="@+id/spinner_00"
android:layout_below="@id/text_00"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:entries="@array/heroes" />

<TextView
android:id="@+id/text_01"
android:layout_below="@id/spinner_00"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="spinnerMode(dialog)" />

<Spinner
android:id="@+id/spinner_01"
android:layout_below="@id/text_01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dialog"
android:entries="@array/heroes" />

<TextView
android:id="@+id/text_02"
android:layout_below="@id/spinner_01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定义样式(仅在dropdown下生效)" />

<Spinner
android:id="@+id/spinner_02"
android:layout_below="@id/text_02"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:dropDownHorizontalOffset="50dp"
android:dropDownVerticalOffset="100dp"
android:dropDownSelector="@color/colorPrimaryDark"
android:dropDownWidth="200dp"
android:popupBackground="@color/colorAccent"
android:spinnerMode="dropdown"
android:entries="@array/heroes" />

<TextView
android:id="@+id/text_03"
android:layout_below="@id/spinner_02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定义" />

<Spinner
android:id="@+id/spinner_03"
android:layout_below="@id/text_03"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

spinnerMode="dropdown" 生效
dropDownHorizontalOffset 下拉框水平偏移
dropDownVerticalOffset 下拉框垂直偏移
dropDownSelector 下拉框选中背景颜色
popupBackground 下拉框背景颜色
dropDownWidth 下拉框宽度
spinnerMode 下拉框显示的形式(dialog:对话框风格的窗口, dropdown:下拉菜单风格的窗口(默认))
entries 下拉框数据

</RelativeLayout>

  • 选项布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="50dp">

<ImageView
android:id="@+id/avatar"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_marginRight="10dp"/>

<TextView
android:id="@+id/say"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"/>

</LinearLayout>

  • 数据

<string-array name="heroes">
<item>刘备</item>
<item>关羽</item>
<item>张飞</item>
<item>李二蛋</item>
</string-array>

  • 脚本

var spinner_03 = (Spinner)FindViewById(Resource.Id.spinner_03);
IList<IDictionary<string, object>> list = new JavaList<IDictionary<string, object>>
{
new JavaDictionary<string, object>
{
{ "avatar", Resource.Drawable.avatar },
{ "say", "人海茫茫,你我依旧孤独~~~" }
},
new JavaDictionary<string, object>
{
{ "avatar", Resource.Drawable.avatar },
{ "say", "谁又能来拯救我这灰暗的人生呢……" }
},
new JavaDictionary<string, object>
{
{ "avatar", Resource.Drawable.avatar },
{ "say", "道不尽世间的沧桑,诉不完人生的悲凉!" }
}
};
var keys = new[] { "avatar", "say" };
var targets = new[] { Resource.Id.avatar, Resource.Id.say };
var simpleAdapter = new SimpleAdapter(this, list, Resource.Layout.spinner_item, keys, targets);
if (spinner_03 == null) return;
spinner_03.Adapter = simpleAdapter;
spinner_03.ItemSelected += (sender, args) =>
{
var say = (TextView)args.View?.FindViewById(Resource.Id.say);
Toast.MakeText(this, say?.Text, ToastLength.Long)?.Show();
};


举报

相关推荐

0 条评论