仿IOS弹窗,自定义弹窗,和滚动选择条目,详细注释小白能看懂

仿iOS弹窗与滚动选择条目实现详解
本文详细介绍了如何在Android中创建一个模仿iOS风格的弹窗,包括弹窗布局的设计、按钮点击事件处理、滚动条目的布局方法,并提供最终效果的展示,适合初学者理解学习。
1.导入依赖
//弹窗
implementation 'com.bigkoo:alertview:1.0.3'
//滚动选择器
implementation 'com.contrarywind:Android-PickerView:4.1.8'

2.布局

3.点击各个按钮的操作

bottomdialog.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
//底部弹窗
        alertShow1();
    }
});
dialog.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
//对话框
        alertShow2();
    }
});
setdialog.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
//自定义弹窗
        alertShow3();
    }
});
xzdialog.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
//滚动条目
        alertShow4();
    }
});

public void alertShow1() {
    new AlertView.Builder().setContext(getActivity())
            .setStyle(AlertView.Style.ActionSheet)
            .setTitle("选择操作")
            .setMessage(null)
            .setCancelText("取消")
            .setDestructive("拍照", "从相册中选择")
            .setOthers(null)
            .setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(Object o, int position) {
                    Toast.makeText(getActivity(), "点击了" + position, Toast.LENGTH_LONG).show();
                }
            })
            .build()
            .show();
}

public void alertShow2() {
    new AlertView("标题", "是否关闭此窗口?", null, new String[]{"确定", "取消"}, null, getActivity(), AlertView.Style.Alert, new OnItemClickListener() {
        @Override
        public void onItemClick(Object o, int position) {
            if (position == 0) {
                Toast.makeText(getActivity(), "点击了" + position, Toast.LENGTH_LONG).show();
            }
        }
    }).show();
}

public void alertShow3() {
    //拓展窗口
    ViewGroup extView = (ViewGroup) LayoutInflater.from(getActivity()).inflate(R.layout.buttom_dialog_layout, null);
    alertView = new AlertView(null, null, "关闭页面", null, null, getActivity(), AlertView.Style.ActionSheet,
            new OnItemClickListener() {
                @Override
                public void onItemClick(Object o, int position) {

                }
            });
    alertView.show();
    alertView.addExtView(extView);
}

private void alertShow4() {
    ViewGroup extView = (ViewGroup) LayoutInflater.from(getActivity()).inflate(R.layout.dialog_pickerview_layout, null);
    wheelView = extView.findViewById(R.id.wheelview);
    alertView = new AlertView(null, null, "关闭页面", null, null, getActivity(), AlertView.Style.ActionSheet,
            new OnItemClickListener() {
                @Override
                public void onItemClick(Object o, int position) {

                }
            });
    alertView.show();
    alertView.addExtView(extView);
    wheelView.setCyclic(true);
    final List<String> mOptionsItems = new ArrayList<>();
    mOptionsItems.add("item0");
    mOptionsItems.add("item1");
    mOptionsItems.add("item2");
    wheelView.setAdapter(new ArrayWheelAdapter(mOptionsItems));
    //条件选择器
    wheelView.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(int index) {
            Toast.makeText(getActivity(), "" + mOptionsItems.get(index), Toast.LENGTH_SHORT).show();
        }
    });
}

4.滚动条目的布局

<com.contrarywind.view.WheelView
    android:id="@+id/wheelview"
    android:layout_width="match_parent"
    android:background="#FFFFFF"
    android:layout_height="200dp" />

5.最后附上效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值