相信大家都有遇到下拉选择这个功能,接下来我把我学习的给大家分享一下。
一、导入依赖 implementation 'com.github.arcadefire:nice-spinner:1.4.4'
二、具体应用1、接来下就是创建一个xml布局了fragment_restaurant
,我个人比较喜欢用constraintlayout
约束性布局,我觉得还挺好用的。
<androIDx.constraintlayout.Widget.ConstraintLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:orIEntation="vertical"> <linearLayout androID:ID="@+ID/ll" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:gravity="center" androID:orIEntation="horizontal" app:layout_constrainttop_totopOf="parent"> <org.angmarch.vIEws.NiceSpinner androID:ID="@+ID/spinner_fruit" androID:layout_wIDth="260dp" androID:layout_height="80dp" androID:textcolor="@color/black" androID:textSize="36sp" app:layout_constraintRight_toleftOf="@ID/spinner_food" app:layout_constrainttop_totopOf="parent" /> <org.angmarch.vIEws.NiceSpinner androID:ID="@+ID/spinner_food" androID:layout_wIDth="420dp" androID:layout_height="80dp" androID:layout_marginleft="40dp" androID:textcolor="@color/black" androID:textSize="36sp" app:layout_constraintleft_toRightOf="@ID/spinner_fruit" app:layout_constrainttop_totopOf="@ID/spinner_fruit" /> </linearLayout></androIDx.constraintlayout.Widget.ConstraintLayout>
二、布局文件写完,就该写具体的应用逻辑了,我们新建一个activity或者一个fragment,这看你自己的使用场景。
我这里就以创建fragment为例了,创建一个RestaurantFragment
。具体使用就是将你的列表清单即一个List绑定到控件中,没错,就这么easy,嘻嘻!
public class RestaurantFragment extends Fragment{ private List<String> fruitList = new ArrayList<>(); private List<String> foodList = new ArrayList<>(); @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { VIEw vIEw = inflater.inflate(R.layout.fragment_restaurant, container, false); fruitList.add("苹果"); fruitList.add("香蕉"); fruitList.add("西瓜"); fruitList.add("葡萄"); foodList.add("红烧肉"); foodList.add("可乐鸡翅"); foodList.add("奥尔良烤鸡"); //找到控件 NiceSpinner spinnerFruit = (NiceSpinner) vIEw.findVIEwByID(R.ID.spinner_fruit); NiceSpinner spinnerFood = (NiceSpinner) vIEw.findVIEwByID(R.ID.spinner_food); //设置背景,自定义的背景 spinnerFood.setBackgroundResource(R.drawable.style_item); spinnerFruit.setBackgroundResource(R.drawable.style_item); //将数据绑定 spinnerFruit.attachDataSource(fruitList); spinnerFood.attachDataSource(foodList); spinnerFruit.setonSpinnerItemSelectedListener(new OnSpinnerItemSelectedListener() { @OverrIDe public voID onItemSelected(NiceSpinner parent, VIEw vIEw, int position, long ID) { Toast.makeText(getActivity(), "你选择标签" + fruitList.get(position), Toast.LENGTH_SHORT).show(); } }); spinnerFood.setonSpinnerItemSelectedListener(new OnSpinnerItemSelectedListener() { @OverrIDe public voID onItemSelected(NiceSpinner parent, VIEw vIEw, int position, long ID) { Toast.makeText(getActivity(), "你选择标签" + foodList.get(position), Toast.LENGTH_SHORT).show(); } }); return vIEw; }}
三、第三部就是在drawable
里面新建一个xml样式了style_item
。
<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:wIDth="300dp" androID:height="72dp"> <shape androID:shape="rectangle"> <solID androID:color="#ffffffff" /> <corners androID:radius="6dp" /> </shape> </item></selector>
ok,这样大功告成了,运行一下看一下吧!注意,里面的List
换成你自己的实际数据就行,布局样式也可以换成你自己的。
以上是内存溢出为你收集整理的android——下拉选择框(自定义spinner)全部内容,希望文章能够帮你解决android——下拉选择框(自定义spinner)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)