android 标题栏下拉选择控件(下拉菜单宽度全屏显示spinner)

本文介绍如何在Android中实现一个Spinner,使其在下拉时菜单宽度全屏显示。采用TextView结合PopupWindow的方法,通过封装适配器和自定义逻辑来达成目标。示例代码展示了适配器的创建和PopWindow的使用。
摘要由CSDN通过智能技术生成

android下拉菜单spinner,虽然很方便,但有些需求是下拉框是固定大小,下拉菜单栏则是宽度全屏,据我所知android自带的spinner是不好处理的,所以就自己动手吧,自己动手有饭吃。废话少说,先上图再说


这里的实现方案是TextView加PopupWindow,并对其进行了封装。

照惯例,我们仍然从简单的说起,首先是适配器,因为我们的下拉列表其实就是一个listView,所以该适配器直接继承BaseAdapter,在这里我们只增加一个抽象方法getItemText(int position),用于TextView获取显示的文本,代码如下:

public abstract class BaseSpinnerAdapter extends BaseAdapter {

    public abstract String getItemText(int position);

}


这次的控件会比较简单,只是TextView和PopupWindow的组合控件,所以理所当然的该控件直接继承TextView,然后分一下几步

1、在构造方法中创建一个PopWindow,代码如下:

 /**
     * 初始化列表PopupWindow
     */
    public void init(Context context) {
        setGravity(Gravity.CENTER);
        LinearLayout layout = new LinearLayout(context);
        layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT));
        layout.setBackgroundColor(0xaa000000);
        layout.setOrientation(LinearLayout.VERTICAL);
        mPopWindow = new PopupWindow(layout, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, true);
        mPopWindow.setAnimationStyle(animationId);

        line = new
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值