`
hwy1782
  • 浏览: 153304 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ScrollView用法

 
阅读更多
package com.example.scrollview;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainActivity extends Activity {
	
	private ScrollView sView;
	private LinearLayout linearLayout;
	private Button button;
	private TextView textView;
	private Handler myHandler = new Handler();
	//当前滚屏的高度
	private int sHeight ;
	private Intent myIntent;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		sView = (ScrollView)findViewById(R.id.scrollView);
		linearLayout = (LinearLayout)findViewById(R.id.linearLayout);
		button = (Button)findViewById(R.id.button);
		textView = (TextView)findViewById(R.id.textView);
		sHeight = sView.getHeight();
		
		button.setOnClickListener(new myOnclickListener());
	}
	
	/**
	 * button事件:
	 * 1.点击button在linearlayout中动态添加textView和button
	 * 2.触发ScrollView的滚屏操作,滚动到最新添加的button处
	 *
	 */
	class myOnclickListener implements OnClickListener{

		int index = 0;
		
		@Override
		public void onClick(View v) {
			LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
					LinearLayout.LayoutParams.WRAP_CONTENT);
			
			TextView addText = new TextView(MainActivity.this);
			addText.setText("textView"+index);
			
			Button addButton = new Button(MainActivity.this);
			addButton.setText("button"+index);
			addButton.setId(index++);

			linearLayout.addView(addText, linearLayoutParams);
			linearLayout.addView(addButton, linearLayoutParams);
		
			myHandler.post(mScrollToButton);
		}
		
	}
	
	private Runnable mScrollToButton = new Runnable() {
		
		@Override
		public void run() {
			
			//linearLayout的总高度
			System.out.println("linearLayout.getMeasuredHeight() =>"+linearLayout.getMeasuredHeight());
			//定位:位置 = 总高度 - 当前屏幕的高度
			int off = linearLayout.getMeasuredHeight() - sHeight;
			if(off > 0){
				//向下滚屏
				sView.scrollBy(0, off);
			}
			
		}
	};

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}

 

分享到:
评论

相关推荐

    Android控件之ScrollView用法实例分析

    本文实例讲述了Android控件之ScrollView用法。分享给大家供大家参考。具体如下: ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳来显示的视图。 ScrollView只支持垂直滚动。 以下为案例 ...

    ios scrollview循环(轻松实现自定义)

    5. 使用`dequeueReusableCellWithIdentifier:`方法来重用ScrollView的子视图,这样可以优化性能,防止内存占用过多。 在"ScrollView循环"这个压缩包中,可能包含了实现上述功能的示例代码。通过研究这些代码,你...

    Android平台下使用ScrollView滚动效果代码

    首先,我们来了解ScrollView的基本用法。在XML布局文件中,你可以像这样添加一个ScrollView: ```xml <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_...

    超级列表SuperScrollview使用模板.unitypackage

    超级列表SuperScrollview使用模板.unitypackage

    ScrollView+LinearLayout模拟ListView

    有时候项目在ListView中需要显示EditText,CheckBox等控件,这样就会出现一个问题,滑动时或失去焦点时编辑信息混乱。...这里提供了令一种解决方法,ScrollView,+LinearLayout模拟ListView完美解决。

    swift scrollview xib 用法

    要监听UIScrollView的滚动事件,可以使用`scrollViewDidScroll`代理方法: ```swift extension ViewController: UIScrollViewDelegate { func scrollViewDidScroll(_ scrollView: UIScrollView) { // 在这里...

    cocos2d-x ScrollView使用

    本篇将详细讲解cocos2d-x中ScrollView的使用方法。 1. **ScrollView简介** ScrollView是一个可滚动的视图容器,它可以包含一个或多个子节点,并且这些子节点可以在水平或垂直方向上滚动。开发者可以通过ScrollView...

    Android垂直滚动控件ScrollView使用方法详解

    1)ScrollView垂直滚动控件使用方法 1、在layout布局文件的最外层建立一个ScrollView控件 2、在ScrollView控件中加入一个LinearLayout控件,并且把它的orientation设置为vertical 3、在LinearLayout控件中放入多个...

    ScrollViewDemo(Swift 3.0)

    总的来说,"ScrollViewDemo"项目通过Swift 3.0和Xcode 8向我们展示了如何利用ScrollView实现动态的图片展示效果,这不仅涉及到基础的ScrollView用法,还涉及到手势识别、视图变换以及AutoLayout的综合运用。...

    IOS中 Scrollview的使用

    这些视图的总宽度应大于ScrollView的contentSize.width。 3. **设置contentSize**:根据子视图的布局,计算并设置contentSize,使得contentSize.width等于所有子视图的总宽度。 4. **实现滚动逻辑**:如果需要自动...

    andriod ScrollView基本用法

    ScrollView的基本用法是将其作为其他布局(如LinearLayout或RelativeLayout)的父容器,以实现可滚动的效果。下面我们将深入探讨ScrollView的相关知识点。 1. **ScrollView的引入** 在XML布局文件中,通过`...

    ScrollView与自定义滑块结合使用的Demo

    总的来说,"ScrollView与自定义滑块结合使用的Demo"是一个涉及到触摸事件处理、组件间通信、动画实现等多个Android开发技术的综合案例。它展示了如何通过自定义组件和巧妙的事件处理,来实现更复杂的用户交互。这...

    ScrollView

    这可以通过在 JavaScript 代码中使用 `add()` 方法来实现。例如,`scrollView.add(childView)` 将 `childView` 添加到 ScrollView 中。 2. **scrollType**:你可以设置 `scrollType` 属性来决定 ScrollView 的滚动...

    大小2个ScrollView

    本篇将深入探讨如何在Android应用中使用大小两个ScrollView来显示图片,并结合标签"ScrollView"和"显示图片"进行详细的讲解。 首先,ScrollView本身是一个可以垂直滚动的单向布局,它只能包含一个直接的子视图。这...

    cocos2d-x中ScrollView的使用

    2. **创建ScrollView**:然后,使用`CCScrollView::create()`静态方法创建ScrollView对象,并设置其大小和方向。例如,创建一个垂直滚动的ScrollView: ```cpp auto scrollView = CCScrollView::...

    SCrollView自动滚动视图

    通过实现UIScrollViewDelegate协议的方法,如`scrollViewDidScroll:`,我们可以监听ScrollView的滚动状态,并根据需要进行相应的处理。例如,在自动滚动时,我们可能需要暂停或恢复定时器,以避免与用户的滑动操作...

    ScrollView嵌套ScrollView滑动

    可以通过重写ScrollView的onInterceptTouchEvent和onTouchEvent方法,根据当前滑动的方向和速度判断应该由哪个ScrollView处理滑动事件。一般情况下,如果滑动方向与内层ScrollView的滚动方向一致,则让内层...

    ios scrollview使用总结

    在本文中,我们将深入探讨`UIScrollView`的使用,包括其关键属性、图片缩放以及如何实现图片轮播。 首先,让我们来了解`UIScrollView`的一些基本属性: 1. `contentSize`:这个属性定义了滚动视图可以滚动的内容...

    scrollView

    通过继承ScrollView并重写其`onMeasure()`和`onScrollChanged()`方法,可以实现自定义的滚动逻辑。 8. **适配器和ListView/RecyclerView**:虽然ScrollView本身并不直接支持列表样式的数据展示,但可以通过结合...

    安卓scrollview动画滚动到顶部

    `addUpdateListener`监听器会在每一帧更新时调用,我们使用`smoothScrollBy()`方法来更新ScrollView的滚动位置。最后,设置动画的持续时间和启动动画。 需要注意的是,为了实现自定义动画效果,你可能需要根据实际...

Global site tag (gtag.js) - Google Analytics