常用底部滚动选择框

匿名 (未验证) 提交于 2019-12-03 00:18:01

效果:


代码:

public class SelectDialog extends BaseDialog {      private OnSelectListener selectListener;     private List<SelectItemBean> dataList;     private WheelVerticalView wheel_select;     private TextView tv_cancel;     private RelativeLayout rl_select_layout;      public SelectDialog(Context context) {         super(context);     }      public SelectDialog(Context context, List dataList, boolean canceledOnTouchOutside, OnSelectListener selectListener) {         super(context, canceledOnTouchOutside);         this.dataList = dataList;         this.selectListener = selectListener;     }      @Override     protected int getLayoutId() {         return R.layout.dlg_select;     }      @Override     protected void initView(View rootView) {         wheel_select = (WheelVerticalView) rootView.findViewById(R.id.wheel);         tv_cancel = (TextView) rootView.findViewById(R.id.tv_cancel);         rl_select_layout = (RelativeLayout) rootView.findViewById(R.id.rl_select_bankcard_layout);         tv_cancel.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 SelectDialog.this.dismiss();             }         });         rl_select_layout.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 SelectDialog.this.dismiss();             }         });         rootView.findViewById(R.id.tv_confirm).setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 selectListener.onSelect(wheel_select.getCurrentItem());                 SelectDialog.this.dismiss();             }         });         getWindow().setWindowAnimations(R.style.anim_bottom_alpha);     }      @Override     protected void initData() {         if (dataList == null || dataList.size() == 0)             return;         wheel_select.setViewAdapter(new ArrayWheelAdapter<>(mContext, R.layout.item_select_dialog, R.id.tv_content, dataList));     }      public void setSelection(int position) {         wheel_select.setCurrentItem(position);     }      public interface OnSelectListener {         void onSelect(int position);     }      private static class ArrayWheelAdapter<T> extends AbstractWheelTextAdapter {         private List<T> items;          public ArrayWheelAdapter(Context context, int itemResource, int itemTextResource, List<T> items) {             super(context, itemResource, itemTextResource);             this.items = items;         }          @Override         public CharSequence getItemText(int index) {             if (index >= 0 && index < items.size()) {                 T item = items.get(index);                 if (item instanceof SelectItemBean) {                     return ((SelectItemBean) item).content;                 }                 return item.toString();             }             return null;         }          @Override         public int getItemsCount() {             return items.size();         }     } }

布局:dlg_select.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"     xmlns:app="http://schemas.android.com/apk/res-auto"     android:id="@+id/rl_select_bankcard_layout"     android:clickable="true">          <LinearLayout         android:id="@+id/lay_bottom"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_alignParentBottom="true"         android:background="@color/white"         android:orientation="vertical"         android:clickable="true">          <RelativeLayout             android:layout_width="match_parent"             android:layout_height="96px"             android:background="@color/color_f6f6f6">              <TextView                 android:id="@+id/tv_cancel"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_alignBaseline="@+id/tv_confirm"                 android:layout_alignBottom="@+id/tv_confirm"                 android:layout_alignParentLeft="true"                 android:layout_alignParentStart="true"                 android:gravity="center"                 android:paddingLeft="30px"                 android:text="@string/cancel"                 android:textColor="@color/color_333333"                 android:textSize="30px" />              <TextView                 android:id="@+id/tv_confirm"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:layout_alignParentRight="true"                 android:layout_centerVertical="true"                 android:gravity="center"                 android:paddingRight="30px"                 android:text="@string/confirm"                 android:textColor="@color/color_0075cc"                 android:textSize="30px" />         </RelativeLayout>           <com.szzc.widget.view.spinnerwheel.WheelVerticalView             android:id="@+id/wheel"             android:layout_width="match_parent"             app:selectionDivider="@color/color_eeeeee"             android:layout_height="384px" />              </LinearLayout>      </RelativeLayout>

布局:item_select_dialog.xml

<?xml version="1.0" encoding="utf-8"?> <com.zhy.autolayout.AutoRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent">     <TextView         android:id="@+id/tv_content"         android:layout_width="match_parent"         android:layout_height="70px"         android:background="@drawable/selector_base_select_list_item"         android:textColor="@color/color_333333"         android:gravity="center"         android:layout_centerVertical="true"         android:textSize="32px"         android:text="@string/cancel"/>      <ImageView         android:id="@+id/iv_item_select"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignParentRight="true"         android:layout_centerVertical="true"         android:visibility="gone"         android:layout_marginRight="30px"         android:background="@mipmap/icon_select"/>     <View         android:layout_width="match_parent"         android:layout_height="1px"         android:visibility="gone"         android:layout_alignParentBottom="true"         android:background="@color/color_eeeeee" /> </com.zhy.autolayout.AutoRelativeLayout>

使用:

SelectDialog dialog = new SelectDialog(context, relationList, true, new SelectDialog.OnSelectListener() {                     @Override                     public void onSelect(int position) {                         mFrtRelationWithProposer.setText(relationList.get(position));                     }                 }); dialog.show();

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!