android滑动view
16lz
2021-12-04
package com.example.demo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;/** * @author Huang xudong * @date 2020/7/26 */public class MainActivity extends AppCompatActivity { private LinearLayout view; /** * 定义你的View最大高度,maybe set max PHONE height * 这里设置最大值,防止底部还有组件 */ private int maxTopHeight=5000; /** * 获取控件的默认高度,当下滑最小高度的时候不再滑动了 */ private int defaultHeight=0; /** * 这里设置的组属性 */ private ViewGroup.LayoutParams layoutParams; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); view=findViewById(R.id.ll_main); layoutParams = view.getLayoutParams(); defaultHeight=layoutParams.height; /** * 注册view滑动事件,可以选择其他的,比喻指定的组件 */ view.setOnTouchListener(new View.OnTouchListener() { int y=0; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: y= (int) event.getRawY(); break; case MotionEvent.ACTION_MOVE: int lastY= (int) event.getRawY(); if (lastY-y>0){ if (layoutParams.height>defaultHeight){ layoutParams.height=layoutParams.height-Math.abs(lastY-y)/20; view.setLayoutParams(layoutParams); } }else { if (layoutParams.height
<?xml version="1.0" encoding="utf-8"?>
主要有一个算法,其他的都是比较简单的。上面是效果图
更多相关文章
- Android动态生成RadioButton
- android CoordinatorLayout 使用
- Android(安卓)ListView使用
- Android(安卓)侧滑删除功能
- scrollView的fillviewport
- Android(安卓)页面惯性回弹效果,Nested接口接口简单实现。
- [转]Android(安卓)应用程序基础(Application Fundamentals)
- Android(安卓)系统基础
- 从零开始学习Android开发-Android概览