设置AlertDialog的列表样式
16lz
2021-01-26
虽然谷歌的sdk已经给大家提供了诸多的接口去实现大家想要的界面,但是时常我们还是因为客户的需求,来对界面进行相应的修改,以更加适合业务的需要。
在进行android界面设计的时候,我在使用AlertDialog进行弹出框的列表选择的时候,发现本来可以一屏显示的列表,因为谷歌自定义的列表样式,出现了滚动条,客户希望一屏就能显示。
第一想到的就是重写AlertDialog的,然后再重新实现布局,但是觉得这样又需要去重写列表选择的功能,考虑到这样一个小的客户需求,重新去重新这么多的代码,实在得不偿失,就开始考虑其它的方法。
最后通过查阅资料,发现可以调用setAdapter,在adapter中指定给item指定一个xml布局文件,然后在布局xml文件中定义相关样式。这样就可以轻松去设置每个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:layout_width="fill_parent"
- android:layout_height="40dp"
- android:gravity="center_vertical"
- android:ellipsize="marquee" />
然后直接通过setAdapter()方法去调用即可,不再需要调用setItems();
调用代码如下
- spinner_handle = (Button) findViewById(R.id.method_result);
- spinner_handle.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- new AlertDialog.Builder(context)
- .setTitle("请选择处理结果")
- .setAdapter(new ArrayAdapter(MaintainBillActivity.this,R.layout.result_spinner_layout,handle_items) ,new DialogInterface.OnClickListener() {//调用适配器
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- handle_method_result=handle_items[which];
- spinner_handle.setText(handle_method_result);
- }
- })
- .create().show();
- }
- });
原图,列表项太宽,出现流动条
上传一下列表的效果图片
更多相关文章
- Android[学习] UI优化方案
- android适配器模式设计与实现
- android四大组件之Service服务之总体概述
- Android音量调节的实现(RingtoneManager和RingerVolumePreferenc
- Android调用WCFRest
- Android(安卓)MVC模式实例(一)
- 安卓ScrollView总结
- Android系统搜索对话框(浮动搜索框)的使用
- Android仿美团外卖点菜联动列表