Android View 扩大点击区域

    private fun  toSetBigClickArea(view:View){
        var delegateArea = Rect();
        var delegate = view
        view.post {
            delegate.getHitRect(delegateArea)
            delegateArea.top -= 80
            delegateArea.bottom += 80
            delegateArea.left -= 80
            delegateArea.right += 80
            var  expandedArea = TouchDelegate(delegateArea, delegate)
            var parent = delegate.parent as? View
            parent?.touchDelegate = expandedArea
        }

    }

主要是通过 delegate 扩大。注意要在post 里面修改。因为view 没有测量完成。这时候获取不到它的rect 。这里扩大的区域超过父容器的部分是不会生效的。

一个Parent只能设置一个View的TouchDelegate,设置多个时只有最后设置的生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,list view点击事件的实现可以通过以下步骤完成: 1. 首先,在XML布局文件中定义list view组件: ``` <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在Java代码中,获取list view组件并为其设置适配器: ``` ListView listView = (ListView) findViewById(R.id.list_view); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); ``` 其中,data是一个字符串数组,用于作为list view的数据源。 3. 接下来,为list view设置点击事件监听器: ``` listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 处理点击事件 } }); ``` 在监听器的onItemClick方法中,可以编写处理list view点击事件的代码。其中,position参数表示用户点击的位置,从0开始计数。 4. 最后,可以在处理点击事件的代码中,根据用户点击的位置获取相应的数据,并执行相应的操作: ``` String item = (String) parent.getItemAtPosition(position); Toast.makeText(MainActivity.this, "You clicked " + item, Toast.LENGTH_SHORT).show(); ``` 在这个例子中,我们通过getItemAtPosition方法获取用户点击位置所对应的数据,并通过Toast显示出来。 以上就是Android中list view点击事件的实现方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值