当前位置: 首页 > wzjs >正文

网站seo优化的目的龙岗微信网站制作

网站seo优化的目的,龙岗微信网站制作,wordpress模板 免费,1sose wordpress文章目录 **ScrollView(滚动视图)详解****1. 核心特性****2. 基本用法****XML 示例:简单滚动布局** **3. 水平滚动:HorizontalScrollView****4. 高级用法****(1) 嵌套滚动控件****(2) 动态添加内容****(3) 监听滚动事件** **5. 注…

在这里插入图片描述

文章目录

  • **ScrollView(滚动视图)详解**
    • **1. 核心特性**
    • **2. 基本用法**
      • **XML 示例:简单滚动布局**
    • **3. 水平滚动:HorizontalScrollView**
    • **4. 高级用法**
      • **(1) 嵌套滚动控件**
      • **(2) 动态添加内容**
      • **(3) 监听滚动事件**
    • **5. 注意事项**
    • **6. 总结**
  • Android三种onClick实现方式详细对比
    • 第一种方式:静态内部类 + 传递View参数
      • 实现代码
      • 特点与优劣
    • 第二种方式:非静态内部类(示例代码有误,应为非静态)
      • 修正后的实现代码
      • 特点与优劣
    • 第三种方式:Activity实现接口
      • 实现代码
      • 特点与优劣
    • 综合对比表
    • 实际开发建议

在这里插入图片描述

ScrollView(滚动视图)详解

ScrollView 是 Android 中用于实现垂直滚动的布局容器,允许内容超出屏幕时通过滑动查看。它只能包含一个直接子控件(通常是一个 LinearLayoutRelativeLayout)。


1. 核心特性

  • 垂直滚动:默认只支持垂直方向滚动(水平滚动需用 HorizontalScrollView)。
  • 单子控件限制:只能有一个直接子 View(但子 View 可以包含多个子控件)。
  • 无复杂布局逻辑:仅提供滚动功能,不参与子 View 的排列。
  • 嵌套滚动:可与 RecyclerViewListView 等嵌套使用(需注意性能问题)。

2. 基本用法

XML 示例:简单滚动布局

<ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:fillViewport="true">  <!-- 确保内容填满屏幕 --><!-- 只能有一个直接子 View --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><!-- 多个子控件 --><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="Title"android:textSize="24sp" /><ImageViewandroid:layout_width="match_parent"android:layout_height="300dp"android:src="@drawable/large_image" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="Submit" /></LinearLayout>
</ScrollView>

关键属性

  • android:fillViewport="true":强制内容填满屏幕(即使内容不足)。

3. 水平滚动:HorizontalScrollView

如果需要水平滚动,使用 HorizontalScrollView

<HorizontalScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="match_parent"android:orientation="horizontal"><!-- 多个水平排列的子控件 --><Button android:text="Button 1" /><Button android:text="Button 2" /><Button android:text="Button 3" /></LinearLayout>
</HorizontalScrollView>

4. 高级用法

(1) 嵌套滚动控件

ScrollView 可以嵌套 RecyclerView/ListView,但需禁用内部滚动以避免冲突:

recyclerView.isNestedScrollingEnabled = false  // Kotlin
// 或
recyclerView.setNestedScrollingEnabled(false); // Java

(2) 动态添加内容

val scrollView = findViewById<ScrollView>(R.id.scroll_view)
val linearLayout = LinearLayout(this).apply {orientation = LinearLayout.VERTICAL
}// 动态添加子 View
repeat(20) {val textView = TextView(this).apply {text = "Item $it"setPadding(16.dpToPx(), 16.dpToPx(), 16.dpToPx(), 16.dpToPx())}linearLayout.addView(textView)
}scrollView.addView(linearLayout)

(3) 监听滚动事件

scrollView.viewTreeObserver.addOnScrollChangedListener {val isAtBottom = scrollView.getChildAt(0).bottom <= (scrollView.height + scrollView.scrollY)if (isAtBottom) {Toast.makeText(this, "Reached bottom!", Toast.LENGTH_SHORT).show()}
}

5. 注意事项

  1. 性能优化

    • 避免嵌套过多 ScrollView(尤其是包含 RecyclerView)。
    • 长列表建议直接用 RecyclerView(自带滚动和复用机制)。
  2. 常见问题

    • 内容不显示:检查子 View 的高度是否为 wrap_content
    • 滚动冲突:嵌套 RecyclerView 时禁用内部滚动。
  3. RecyclerView 对比

    特性ScrollViewRecyclerView
    滚动方向仅垂直/水平双向自由滚动
    复用机制无(所有子 View 同时加载)有(高效复用)
    适用场景简单内容滚动长列表/网格

6. 总结

  • ScrollView:简单实现垂直滚动,适合内容较少的页面。
  • HorizontalScrollView:实现水平滚动。
  • 关键技巧
    • 使用 fillViewport="true" 填满屏幕。
    • 嵌套滚动控件时注意性能问题。
    • 动态内容需通过代码添加。

示例场景:注册表单、长文章、设置页面等需要滚动的界面。


Android三种onClick实现方式详细对比

第一种方式:静态内部类 + 传递View参数

实现代码

Button btn_toMain2 = findViewById(R.id.btn_toMain2);
btn_toMain2.setOnClickListener(new staticMyOnClickListener(tv_hello));static class staticMyOnClickListener implements View.OnClickListener{private final TextView tv_hello;public staticMyOnClickListener(TextView tv_hello) {this.tv_hello = tv_hello;}@Overridepublic void onClick(View view) {tv_hello.setTextColor(0xFFFF0000);}
}

特点与优劣

优点:

  1. 内存安全:使用静态内部类,不会隐式持有外部Activity的引用
  2. 职责明确:点击逻辑封装在独立类中,符合单一职责原则
  3. 可复用:可以在多个地方复用同一个ClickListener

缺点:

  1. 代码量较多:需要单独定义类
  2. 参数传递麻烦:如果需要访问多个Activity成员,需要全部通过构造函数传递
  3. 不够灵活:修改TextView需要重新创建实例

适用场景

  • 处理相对独立、简单的点击逻辑
  • 需要复用点击逻辑的情况
  • 对内存安全性要求较高的场景

第二种方式:非静态内部类(示例代码有误,应为非静态)

修正后的实现代码

Button btn_toMain3 = findViewById(R.id.btn_toMain3);
btn_toMain3.setOnClickListener(new MyOnClickListener());class MyOnClickListener implements View.OnClickListener{@Overridepublic void onClick(View view) {// 可以直接访问Activity成员tv_hello.setTextColor(0xFFFF0000);}
}

特点与优劣

优点:

  1. 访问方便:可以直接访问外部Activity的所有成员
  2. 代码简洁:不需要传递参数
  3. 实现简单:适合快速开发

缺点:

  1. 内存泄漏风险:非静态内部类隐式持有Activity引用,如果被长生命周期对象持有会导致内存泄漏
  2. 复用性差:与特定Activity强耦合,难以复用

适用场景

  • 简单的临时点击处理
  • 确定生命周期短、不会被外部持有的情况
  • 需要频繁访问Activity成员的场景

第三种方式:Activity实现接口

实现代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn_toMain5 = findViewById(R.id.btn_toMain5);btn_toMain5.setOnClickListener(this);}@Overridepublic void onClick(View view) {if(view.getId() == R.id.btn_toMain5){Intent intent = new Intent();intent.setClass(this, MainActivity5.class);startActivity(intent);}}
}

特点与优劣

优点:

  1. 代码集中:所有点击逻辑在一个方法中,便于管理
  2. 内存安全:不会造成内存泄漏
  3. 适合多控件:适合处理多个控件的点击事件
  4. 简洁:不需要额外定义类

缺点:

  1. 方法易膨胀:当控件多时,onClick方法会变得庞大
  2. 耦合度高:点击逻辑与Activity强耦合
  3. 可读性下降:大量if-else或switch-case降低可读性

适用场景

  • 处理少量控件的点击事件
  • 需要快速实现点击功能的场景
  • 点击逻辑相对简单的应用

综合对比表

特性静态内部类非静态内部类Activity实现接口
内存安全性低(有泄漏风险)
代码量中等
复用性
访问Activity成员需显式传递直接访问直接访问
适合控件数量单个/少量单个/少量多个
代码组织分散分散集中
推荐程度★★★★☆★★☆☆☆★★★☆☆

实际开发建议

  1. 优先考虑Lambda表达式(Java 8+):

    button.setOnClickListener(v -> {// 处理点击
    });
    

    简洁且内存安全,适合简单逻辑

  2. 复杂逻辑使用静态内部类

    • 特别是需要复用的场景
    • 或者点击逻辑较复杂需要单独封装的
  3. 避免使用非静态内部类

    • 除非能确保不会造成内存泄漏
    • 或者点击逻辑生命周期与Activity完全一致
  4. Activity实现接口适合

    • 小型项目或快速原型开发
    • 点击逻辑简单且控件不多的情况
  5. 对于大型项目

    • 考虑使用ViewBinding或DataBinding
    • 或者采用MVVM模式,将点击逻辑放在ViewModel中

文章转载自:

http://AoSjdpHY.skrxp.cn
http://WJ41bjqt.skrxp.cn
http://a8OKB63b.skrxp.cn
http://ndpRI4mb.skrxp.cn
http://DNIMaJuZ.skrxp.cn
http://bQXsJBZf.skrxp.cn
http://LjL04X5d.skrxp.cn
http://2L9wtfxB.skrxp.cn
http://EO1eQzuD.skrxp.cn
http://Zqk4cmgq.skrxp.cn
http://5NkMs3PC.skrxp.cn
http://iENRraVc.skrxp.cn
http://Xh9wJ2Df.skrxp.cn
http://H8sdEOue.skrxp.cn
http://ZZb94P3p.skrxp.cn
http://B09yuD8J.skrxp.cn
http://SfHuOL72.skrxp.cn
http://0cgUIaNW.skrxp.cn
http://Wh1brhw0.skrxp.cn
http://62L59AK1.skrxp.cn
http://v890sFUT.skrxp.cn
http://h9dbrVeW.skrxp.cn
http://hh5ll4d1.skrxp.cn
http://8dY9EHea.skrxp.cn
http://zGdJlKNn.skrxp.cn
http://0Y8tc1Qa.skrxp.cn
http://wbddoAKy.skrxp.cn
http://0O2hZVW7.skrxp.cn
http://quDnqTkz.skrxp.cn
http://JxIN2Yua.skrxp.cn
http://www.dtcms.com/wzjs/646270.html

相关文章:

  • 推荐电商网站建设身无分文一天赚2000
  • 网站建设硬件设备自助建站还是人工建站好
  • 手机网站建设资讯wordpress论坛整合插件
  • 誉字号网站成都网站关键词排名
  • 做网站得叫什么网站哪个服务器好
  • 使用阿里云做镜像网站广告设计与制作视频教程
  • 国外二手表网站西局网站建设
  • 微信建立免费网站wordpress array a
  • 建婚恋网站需要多少钱如何搭建自己的网站服务器
  • 建设网站需要会什么国家拨款农村建设查询的网站
  • 深圳珠宝品牌网站设计网域高科学校网站管理系统
  • 自己网站页面设计软件浏览器网页版
  • 在百度上怎么建网站网站一直显示建设中
  • 建筑网站起名充值网站分销站怎么做
  • 海口网站开发公众号推文模板免费
  • 大淘客怎样做网站性价比高的做网站公司
  • 番禺学校网站建设建议兰州seo
  • 企业做网站哪家网站好初学者3d建模要什么软件
  • 站长之家查询昆明行业网站建设
  • 天津网站制作哪家好薇站设计培训课程
  • 一个很好的个人网站开发网络运营部
  • 百色建设局网站wordpress 前端用户
  • 亲子游网站怎么做营销型企业网站建设的预算
  • 网站建设构想武安企业做网站推广
  • 网站建设中模板下载建设电子商务网站要素
  • 为什么网站在本地看没问题上传之后没有内容呢?贵州百度竞价网页设计
  • 线上推广软件优化平台建设公司
  • 有没有公司做农副产品网站的小程序商城哪家好服务
  • 朝阳企业网站建设方案费用收费下载资源 wordpress插件
  • 世界摄影网站网站开发 请示