实现类网页回到顶部FrameLayout+ScrollView+Button
情景:应用中可滚动内容过多的话,回到顶部需要滚动多次。今天做个小效果,仿网页的回到顶部功能。
如下图
方案:采用帧布局FrameLayout 有两个Button,包含一个ScrollView,两个Button分别跳转至顶部和底部
布局:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:id="@+id/sc" android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="What is Application Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。 android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局 的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作。 MemoryLeak 在Java中内存泄漏是只,某个(某些)对象已经不在被使用应该被gc所回收,但有一个对象持有这个对象的引用而阻止这个对象被回收。比如我 们通常会这样创建一个View TextView tv = new TextView(this);这里的this通常都是Activity。所以这个TextView就持有着这个Activity的引用。下面看张图 (Google IO 2011 ppt中抄得) " > </TextView> </LinearLayout> </ScrollView> <Button android:id="@+id/btn_toTop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:text="^" /> <Button android:id="@+id/btn_toBottom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="V" /> </FrameLayout>
代码:
public class MainActivity extends Activity { private Button topBtn, bottomBtn; private ScrollView sc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sc = (ScrollView) findViewById(R.id.sc); topBtn = (Button) findViewById(R.id.btn_toTop); bottomBtn = (Button) findViewById(R.id.btn_toBottom); topBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { sc.post(new Runnable() { @Override public void run() { sc.post(new Runnable() { public void run() { // 滚动至顶部 sc.fullScroll(ScrollView.FOCUS_UP); } }); } }); } }); bottomBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { sc.post(new Runnable() { @Override public void run() { sc.post(new Runnable() { public void run() { // 滚动到底部 sc.fullScroll(ScrollView.FOCUS_DOWN); } }); } }); } }); } }
实现起来非常简单:今天朋友提得一个小需求。效果图如下:点击左上按钮到内容最底部,右下角按钮同理
下载地址(无积分):http://download.csdn.net/detail/knockheart/7122649
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。