android 布局中某一个View 在scroll滑动的时候吸附在顶部
来源:互联网 发布:js上传身份证图片插件 编辑:程序博客网 时间:2024/05/17 22:15
第一个要重写scroll,要提供滑动监听的接口出来:
package com.dksj.suctiontopdemo;import android.content.Context;import android.util.AttributeSet;import android.widget.ScrollView;/** * 重构 ScrollView */public class AbsScrollView extends ScrollView { private OnScrollListener onScrollListener; public AbsScrollView(Context context) { super(context); } public AbsScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public AbsScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected int computeHorizontalScrollRange() { return super.computeHorizontalScrollRange(); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (onScrollListener != null) { onScrollListener.onScroll(t); } } public interface OnScrollListener { void onScroll(int y); } public void setOnScrollListener(OnScrollListener onScrollListener) { this.onScrollListener = onScrollListener; }}
第二部,在布局中使用重构的scroll:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <com.dksj.suctiontopdemo.AbsScrollView android:id="@+id/mScrollView" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:id="@+id/mTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff00" android:padding="10dp" android:text="Hello World!" android:textColor="#fff" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="Hello World!" /> </LinearLayout> <TextView android:id="@+id/mTextViewTop" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff00" android:padding="10dp" android:text="Hello World!" android:textColor="#fff" /> </FrameLayout> </com.dksj.suctiontopdemo.AbsScrollView></RelativeLayout>
第三部在activity中使用:
package com.dksj.suctiontopdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;import android.view.ViewTreeObserver;import android.widget.RelativeLayout;import android.widget.TextView;public class MainActivity extends AppCompatActivity implements AbsScrollView.OnScrollListener { private AbsScrollView absScrollView; private RelativeLayout activity_main; private TextView mTextView; private TextView mTextViewTop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); activity_main = (RelativeLayout) findViewById(R.id.activity_main); absScrollView = (AbsScrollView) findViewById(R.id.mScrollView); absScrollView.setOnScrollListener(this); mTextView = (TextView) findViewById(R.id.mTextView); mTextViewTop = (TextView) findViewById(R.id.mTextViewTop); activity_main.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { onScroll(absScrollView.getScrollY()); } }); } @Override public void onScroll(int y) { int top = Math.max(y, mTextView.getTop()); mTextViewTop.layout(0, top, mTextViewTop.getWidth(), top + mTextViewTop.getHeight()); }}
0 0
- android 布局中某一个View 在scroll滑动的时候吸附在顶部
- android view滑动到顶部并固定在顶部
- Android中实现 滑动时将指定View定位在顶部
- Android -- 固定在ScrollView顶部的View
- 仿淘宝view滑动至屏幕顶部会一直停留在顶部的位置
- 设置div的overflow:scroll,但是在手机上滑动的时候有点卡顿
- 怎样得到数据库中某一个表的某一个字段在设计时候的数据类型
- Android 3种坐标系、View在各坐标系下获取自身坐标的方法、View的滑动方式和scroll方法
- android在代码中修改view的布局
- List View和ScrollView冲突的解决以及List View在Scroll View中计算高度
- Android 滑动组件悬浮固定在顶部
- android 中View测量,布局和滑动的属性区分
- android 滑动顶部布局停留
- 【Android自定义控件】布局悬停在顶部
- Android -- 固定在ScrollView顶部的View,类似于新浪微博的评论列表的顶部
- Android -- 固定在ScrollView顶部的View,类似于新浪微博的评论列表的顶部
- Android -- 固定在ScrollView顶部的View,类似于新浪微博的评论列表的顶部
- 在android中每隔一段时间执行某一个任务的方法
- 汽车双面胶怎么去除
- 一些css的特性和‘坑’
- 改变状态栏的颜色
- eclipse同时启动两个tomcat
- mysql,oracle统计重复数据
- android 布局中某一个View 在scroll滑动的时候吸附在顶部
- java 基础练习 时间转换
- Android模板设计模式之 - 构建整个应用的BaseActivity
- BOA搭建_ubuntu
- 关于Java类内的初始化顺序
- Objective-C Runtime
- arcgis api for js 开发
- javafx的导出文件选择路径
- WebService概念