移动开发UI组件【免费下载链接】Android-ObservableScrollViewAndroid library to observe scroll events on scrollable views.项目地址https://gitcode.com/gh_mirrors/an/Android-ObservableScrollView点击查看免费下载本指南以仓库中 samples/README.md 为骨架围绕如何构建并运行 Android-ObservableScrollView 的 samples 示例应用这一主题展开你将掌握通过 Gradle 命令行gradlew installDevDebug一键安装示例 APK 的完整流程以及 Android Studio、Eclipse 两种 IDE 的构建路径并结合仓库中的 samples/build.gradle、docs/example/android-studio.md、docs/example/eclipse.md 与 library 源码弄清示例工程背后的构建机制与库的回调用法从而快速验证并上手这个可观察滚动事件的 Android 库。samples 是 Android-ObservableScrollView 仓库自带的示例工程其定位正如 samples/README.md 所述This sample project demonstrates how the Android-ObservableScrollView works即演示该库在真实 App 中如何工作。下面的动图来自仓库 samples/images 目录展示了其中几个典型示例的运行效果Samples 示例工程概览两个模块、数十个示例从根目录 settings.gradle 可以看出仓库由两个 Gradle 子工程组成include :library, :samples:library库本体包含ObservableScrollView、ObservableListView、ObservableGridView、ObservableRecyclerView、ObservableWebView等可观察滚动控件以及ObservableScrollViewCallbacks、ScrollState、ScrollUtils等配套类见 library/src/main/java/com/github/ksoichiro/android/observablescrollview。:samples示例应用以com.github.ksoichiro.android.observablescrollview.samples为包名samples/AndroidManifest.xml 中注册了数十个示例 Activity覆盖ActionBar / Toolbar 联动ActionBarControl*Activity、ToolbarControl*Activity、FragmentActionBarControlListViewActivityFlexible Space弹性空间FlexibleSpaceWithImage*Activity、FlexibleSpaceToolbar*Activity、FlexibleSpaceWithImageWithViewPagerTab*ActivityParallax视差ParallaxToolbar*ActivitySticky Header吸顶StickyHeader*ActivitySliding Up上滑面板SlidingUp*ActivityViewPager TabViewPagerTabActivity、ViewPagerTab2Activity、ViewPagerTabFragmentActivity及其配套 FragmentFill Gap填充间距FillGap*Activity、FillGap2*Activity、FillGap3*ActivityHandleTouch触摸拦截HandleTouch*ActivityScroll From BottomScrollFromBottomListViewActivity、ScrollFromBottomRecyclerViewActivityFragment 转场FragmentTransitionActivity及两个 Fragment示例入口MainActivity并非硬编码菜单而是通过Intent.ACTION_MAIN 自定义 categorycom.github.ksoichiro.android.observablescrollview.samples配合PackageManager.queryIntentActivities()动态枚举所有示例 Activity再按类名过滤、按字母排序后展示见 MainActivity.java。这意味着只要在 Manifest 中新增带该 category 的 Activity主界面列表就会自动出现新条目非常适合持续扩充示例。构建前准备环境要求与依赖版本官方声明的开发环境samples/README.md 明确提醒文档仍处于工作进行中work in progress作者曾在 Android Studio、Eclipse、Mac 上的 Gradle 以及 Travis CI 的 Linux 上构建过但可能存在一些尚未发现的隐式依赖。仓库 docs/reference/environment.md 给出了官方构建环境的基线项目版本OS开发Mac OS X 10.10IDE开发Android Studio 1.2JDK1.7Oracle JDKAndroid Studio 构建前提Android Studio 1.0.0、Android SDK Tools Rev.24.1.2、Build-tools Rev.22.0.1、Android 5.1.1 SDK Platform Rev.2、Android Support Repository Rev.14、Android Support Library Rev.21.1.1Eclipse 构建前提Eclipse 4.4 (Luna) SR1 ADT Plugin、Android 5.0 SDK Platform Rev.1、Android Support Repository Rev.9、Android Support Library Rev.21.0.2由 Gradle 配置可确认的版本事实从构建配置可以直接确认以下事实以仓库当前内容为准属于 2015 年前后 Android 生态的版本组合Gradle Wrapper 固定为Gradle 2.4见 gradle/wrapper/gradle-wrapper.properties 中的distributionUrl。编译目标compileSdkVersion 23、buildToolsVersion 23.0.2、minSdkVersion 9library 与 samples 一致见 library/build.gradle 与 samples/build.gradle。samples 的外部依赖samples/build.gradle 声明了appcompat-v7:23.1.1、nineoldandroids:library:2.4.0、floatingactionbutton:1.0.7并分别以debugCompile project(:library)和releaseCompile com.github.ksoichiro:android-observablescrollview:${SYNCED_VERSION_NAME}依赖库——调试包直接编译本地 library 源码发布包则使用 Maven 中央仓库的已发布版本。根目录 gradle.properties 中SYNCED_VERSION_NAME1.5.2即发布构建所同步的已发布库版本。获取源码构建的第一步是拿到仓库源码可以在工作目录执行$ git clone https://gitcode.com/gh_mirrors/an/Android-ObservableScrollView.gitWindows 用户建议在 Git Bash、Cygwin 等支持 git 的终端中执行。方式一Gradle 命令行构建安装README 的核心命令这是 samples/README.md 唯一给出完整命令的构建方式也是最直接、不依赖 IDE 的路径克隆项目后连接 Android 设备然后在仓库根目录执行Windows命令提示符 gradlew installDevDebugLinux / Mac$ ./gradlew installDevDebugWindows 若在 Git Bash / Cygwin 中运行同样可使用./gradlew写法详见 docs/example/android-studio.md。installDevDebug 任务名拆解installDevDebug这个任务名并非随意组合而是由 Gradle Android 插件的任务前缀 构建变体product flavor × build type拼接而成可以从 samples/build.gradle 的配置逐项对应任务名片段对应配置含义installAndroid 插件标准任务将构建出的 APK 安装到已连接的设备/模拟器DevproductFlavors { dev { } }开发用 flavorapplicationId为com.github.ksoichiro.android.observablescrollview.samplesdebug 构建会追加.debug后缀DebugbuildTypes { debug { ... } }调试构建类型versionNameSuffix -debug也就是说gradlew installDevDebug 构建dev flavor debug buildType变体并安装到设备。与之相对仓库还定义了用于上架 Google Play 的playflavorapplicationId为...samples2README 注明这是因为首个版本因品牌规范违规被下架、改名为 sample2发布到商店的构建对应playRelease系列任务。构建产物与版本信息构建过程还隐藏着自动化的版本管理逻辑gradle/version.gradle 会在构建前生成VersionInfo.java源码目录src/version/buildType/java/...其中LIBRARY_VERSION在 release 构建时取releaseVersionName、否则取 git 短 commit hash注释明确说明这是为了同时兼容不支持 BuildConfig 的 Eclipse。同一脚本通过git rev-parse --short HEAD获取 commit hash不可用时回退为unknown。samples/build.gradle 末尾的applicationVariants.all钩子会把 APK 重命名为{applicationId}-{versionCode}-{versionName}-{commit}.apk格式便于区分构建产物。因此首次执行gradlew installDevDebug时 Gradle 会依次完成下载 wrapper 依赖 → 配置 library 与 samples 两个工程 → 生成版本信息类 → 编译、打包 → 安装到设备。构建成功后在设备上打开Samples应用入口 Activity 为 MainActivity.java即可看到动态枚举出的全部示例列表。安装验证与测试除了安装任务仓库还具备完整的测试支撑library 的 androidTest 目录下包含针对各控件的仪器化测试如ScrollViewActivityTest、ListViewActivityTest、RecyclerViewActivityTest、TouchInterception*Test等可在连接设备后用gradlew connectedCheck类任务运行library 的 debug 构建开启了testCoverageEnabled见 library/build.gradle。这是验证示例所演示行为是否正确的官方途径。方式二Android Studio 构建samples 工程基本支持 Android Studio 与 Gradle作者本人即用其开发docs/example/android-studio.md 给出了完整步骤导入工程选择File New Import Project...选中克隆下来的目录若看不到点击 Refresh 刷新Android Studio 会自动导入并开始构建——即使工程窗口已打开也请等待 Gradle 任务执行完毕、索引完成。运行示例点击 Run samples 按钮构建并启动应用前提是设备已连接。如果只是想安装 APK 到设备则不必导入 Android Studio直接执行上文./gradlew installDevDebug即可。Android Studio 内部其实也是调用 Gradle 执行相同的变体构建两种方式等价。方式三Eclipse 构建README 标注 TODO仓库文档给出了完整步骤samples/README.md 中 on Android Studio 与 on Eclipse 两节均标注为TODO但仓库的 docs/example/eclipse.md 实际补全了 Eclipse 构建的全过程可直接作为该 TODO 的落地实现参考定义ANDROID_HOME若尚未设置将其指向 Android SDK 根目录。生成 Eclipse 依赖代码在项目根目录执行$ ./gradlew clean generateVersionInfoDebug generateEclipseDependencies该命令利用 Gradle wrapper 从 AAR 文件生成依赖代码并产出.classpath、.project、project.properties等元数据文件。导入工程File Import General Existing Projects into Workspace点击Browse选择仓库根目录勾选Search for nested projects注意切勿选择Android Existing Android Code into Workspace方式导入全选工程后等待构建完成期间可能出现警告可忽略。运行应用连接设备后右键observablescrollview-samples选择Run As Android Application。需要强调的是docs/example/eclipse.md 明确列出 Eclipse 路径的限制测试代码、构建类型debug/release与 product flavors 在 Eclipse 下均不支持。因此 Eclipse 仅适合查看与调试主工程代码完整的变体构建与自动化测试请使用 Gradle 或 Android Studio。运行示例后的效果演示示例运行后的交互效果可从仓库 samples/images 目录的演示动图直观了解例如 Sticky Header吸顶头部类示例的运行效果在MainActivity中顶部 Spinner 提供了All / GridView / RecyclerView / ScrollView / ListView / WebView / Toolbar / ActionBar / FlexibleSpace / Parallax / ViewPager等过滤器见 MainActivity.java 的Filter枚举可快速定位到某一类示例每个示例对应的布局文件集中在 samples/res/layout如activity_stickyheaderscrollview.xml、activity_flexiblespacewithimage*.xmlXML 中通过com.github.ksoichiro.android.observablescrollview.Observable*控件替换原生控件即可获得可观察滚动事件的视图。从示例到源码库的回调机制速览samples 不仅是构建对象也是学习库 API 的最佳教材。以 StickyHeaderScrollViewActivity.java 为例它的用法完整呈现了库的核心模式布局中使用ObservableScrollView而非普通ScrollView通过mScrollView.setScrollViewCallbacks(this)注册回调实现ObservableScrollViewCallbacks的三个方法onScrollChanged(int scrollY, boolean firstScroll, boolean dragging)滚动过程中实时驱动头部translationY并用ScrollUtils.getFloat(...)夹取范围onDownMotionEvent()按下事件用于记录基准位置onUpOrCancelMotionEvent(ScrollState scrollState)抬手时根据ScrollState.UP/DOWN决定显示或隐藏工具栏。回调的分发机制可以在库源码中印证ObservableScrollView.java 在onScrollChanged()中根据mPrevScrollY与当前t的大小关系维护ScrollState.UP/DOWN并通过dispatchOnScrollChanged/dispatchOnDownMotionEvent/dispatchOnUpOrCancelMotionEvent依次通知单个或集合形式的回调监听器同时其onTouchEvent()在滚动到边界getCurrentScrollY() - diffY 0时还实现了将触摸事件转交给父容器的TouchInterception机制对应HandleTouch*Activity系列示例。ObservableListView、ObservableGridView、ObservableRecyclerView、ObservableWebView的实现思路与此一致可对照 library/src/main/java/com/github/ksoichiro/android/observablescrollview 目录阅读。更系统的库使用说明可参考仓库 docs/overview.md 与 docs/quick-start/index.md这里不再展开。注意事项与已知限制结合 samples/README.md 与仓库其他文档构建与使用 samples 时有几点需要留意文档仍在完善中README 明示 This document is still work in progress构建环境可能存在未被作者注意的隐式依赖若构建失败可对照 docs/reference/environment.md 检查 SDK/JDK 版本组合。版本较旧仓库依赖 Gradle 2.4、compileSdk 23、Android Studio 1.x 时代的工具链与现代 Android Studio / 新版本 JDK 可能存在兼容性差异这属于该仓库快照的客观版本状态。Eclipse 能力受限如前述Eclipse 路径不支持测试代码、构建类型与 product flavors。Google Play 版本非最新根 README.md 注明商店中的示例应用不一定是最新版本若希望拿到最新构建可自行执行gradlew installDevDebug或参考仓库 CI 配置 wercker.yml 与 docs/example/wercker.md 获取构建产物。调试包使用本地库源码debugCompile project(:library)意味着installDevDebug安装的示例直接链接本地 library 代码修改库源码后重新执行该命令即可在示例中即时验证改动这正是推荐用它来学习库实现的原因。综上gradlew installDevDebug一条命令即可完成 samples 的构建与安装在此基础上Android Studio 适合交互式开发与调试Eclipse 适合无 flavor 需求的代码阅读而 samples 本身既是构建对象又是理解 Android-ObservableScrollView 回调机制与触摸拦截设计的最佳源码教材。赞分享移动开发UI组件【免费下载链接】Android-ObservableScrollViewAndroid library to observe scroll events on scrollable views.项目地址https://gitcode.com/gh_mirrors/an/Android-ObservableScrollView点击查看免费下载相关推荐TiXL 安装指南从 Windows 安装器到 IDE 与命令行构建的完整实践TiXL 安装指南从 Windows 安装器到 IDE 与命令行构建的完整实践 本文面向希望快速上手或深入定制 TiXL开源实时动态图形制作软件项目代号音视频图形学桌面应用egui Android 开发入门从环境搭建到 hello_android 示例的完整构建运行指南egui Android 开发入门从环境搭建到 hello_android 示例的完整构建运行指南 导读 本文以 egui 仓库中的官方 hello_andrUI组件前端桌面应用OR-Tools Java 示例构建与运行全指南从 make 命令到求解器 API 实战OR Tools Java 示例构建与运行全指南从 make 命令到求解器 API 实战 本文以 OR Tools 仓库 examples/java http科学计算创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
