帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Scroller  滚动  VIEW  
ViewFlow for Android

  • 源代码名称:android-viewflow
  • 源代码网址:http://www.github.com/pakerfeldt/android-viewflow
  • android-viewflow源代码文档
  • android-viewflow源代码下载
  • Git URL:
    git://www.github.com/pakerfeldt/android-viewflow.git
  • Git Clone代码到本地:
    git clone http://www.github.com/pakerfeldt/android-viewflow
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/pakerfeldt/android-viewflow
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 面向Android的视图流

    ViewFlow是一个 Android UI小部件提供水平滚动 ,带有从一个适配器窗口填充的条目。 向下滚动到页面底部以进行屏幕快照。

    组件是一个库项目项目。 这意味着不需要复制粘贴资源到你自己的项目中,只需将viewflow组件作为引用添加到任何项目中。

    什么时候使用

    如果viewflow中的视图数量不确定,那么这个库可能合适,如果你在兼容性库中有一个视图,你应该查看和 ViewPager,而不需要使用它。

    用法

    你的布局

    <org.taptwo.android.widget.ViewFlow
     android:id="@+id/viewflow"
     app:sidebuffer="5"
    />

    使用 app:sidebuffer 是可选的。 它定义了当前所显示视图的每一侧要缓冲的视图数。 默认sidebuffer为 3,在时间( 在最大) 中加载的( 3 * 2 + 1 ) 视图总数大约为 7个视图。 为了能够使用更方便的app:sidebuffer 属性,必须以与android名称空间相同的方式包含应用程序名称空间。 请参考示例项目中的布局 main.xml 以获得完整示例。 再次注意,它是应用程序命名空间和 ,而不是必须引用的命名空间xmlns:app="http://schemas.android.com/apk/res/your.application.package.here"

    你的Activity

    ViewFlow viewFlow = (ViewFlow) findViewById(R.id.viewflow);
    viewFlow.setAdapter(myAdapter);

    设置不同的初始位置( 0默认值) 就像下面这样简单:

    viewFlow.setAdapter(myAdapter, 8);

    尽管可能,在调用 setAdapter(myAdapter) 之后不应该立即调用 setSelection(...),因为这样可以加载不必要的视图,从而降低性能。

    屏幕更改事件

    如果你需要监听屏幕更改事件,你需要实现自己的ViewFlow.ViewSwitchListener 并将它的传递给 setOnViewSwitchListener() 方法。

    viewFlow.setOnViewSwitchListener(new ViewSwitchListener() {
     public void onSwitched(View v, int position) {
    //Your code here
     }
    });

    侦听初始化视图事件

    如果需要延迟视图初始化,你需要实现自己 ViewFlow.ViewLazyInitializeListener 并将它的传递给 setOnViewLazyInitializeListener() 方法。

    viewFlow.setOnViewLazyInitializeListener(new ViewLazyInitializeListener() {
     public void onViewLazyInitialize(View view, int position) {
    //Your code here e.g.
     ((MyAdapter)((AbsListView)view).getAdapter()).initializeData();
     }
    });

    流量指示器

    还可以在布局中添加流视图指示器。 FlowIndicator的目的是呈现在项列表焦点所在的位置的可视表示形式。 你可以自己实现 FlowIndicator,也可以使用视图流库提供的实现。 View流库当前支持以下指标:

    循环流量指示器

    这里指示器为适配器中的每个 View 显示一个圆圈,其中有一个代表当前选定视图( 查看下面的截图)的特殊圆。

    <org.taptwo.android.widget.CircleFlowIndicator
     android:padding="10dip" android:layout_height="wrap_content"
     android:layout_width="wrap_content" android:id="@+id/viewflowindic"
     android:background="#00000000"/>

    然后,你需要将 ViewFlowFlowIndicator 连接:

    CircleFlowIndicator indic = (CircleFlowIndicator) findViewById(R.id.viewflowindic);
    viewFlow.setFlowIndicator(indic);

    默认情况下,'活动的'指示器从一个'非活动'指示器平滑移动到下一个指示器,因为用户滚动。 如果将 snap 属性设置为 true,它将在流在下一页上运行时跳转到下一个位置。

    支持以下属性: activeColorinactiveColoractiveType ( 填充或者笔划),inactiveType ( 填充或者笔划),fadeOut ( ms中的时间,直到指示器淡出,0 = 从不),radiussync ( 请参见上方) 。

    标题流量指示器

    这里指示器显示适配器( 查看下面的截图) 中的前一个。当前和下一个 View的标题。

     <org.taptwo.android.widget.TitleFlowIndicator
     android:id="@+id/viewflowindic" android:layout_height="wrap_content"
     android:layout_width="fill_parent"
     app:footerLineHeight="2dp"
     app:footerTriangleHeight="10dp" app:textColor="#FFFFFFFF" app:selectedColor="#FFFFC445"
     app:footerColor="#FFFFC445" app:titlePadding="10dp" app:textSize="11dp" app:selectedSize="12dp"
     android:layout_marginTop="10dip"
     app:clipPadding="5dp"/>

    然后,你需要将 ViewFlowFlowIndicator 连接:

     TitleFlowIndicator indicator = (TitleFlowIndicator) findViewById(R.id.viewflowindic);
     indicator.setTitleProvider(myTitleProvider);
     viewFlow.setFlowIndicator(indicator);

    构建 jar-文件

    如果希望使用 jar 文件而不是包含项目作为android库,请在 android-viewflow/viewflow 文件夹中运行 ant jar,以构建 jar 文件。

    警告

    Manifest 声明一个最小sdk版本 4,它是 true 。 但是无论如何,你需要支持一个api级别 <8,你必须将 onConfigurationChanged 事件转发到你的Activity 中的ViewFlow 。 我知道这不是一个很好的解决方案,请随意提出更好的建议 !

     @Override
     public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);
     viewFlow.onConfigurationChanged(newConfig);
     }

    捐赠

    以下人员应该对他们的贡献有所提及:

    希望贡献?

    GitHub上有一些关于如何开始Git和 GitHub 以及如何处理项目的精彩文章。

    推荐Contributers在 GitHub ( 但也没有) 上进行 fork 应用。 创建一个特性分支,将分支推到git中心,按拉请求并编写一个简单的解释。

    每次提交都修复一次。如果假设提交关闭了打开的问题 12. 只要在提交消息中添加 closes #12 即可自动关闭该问题。

    如果你仍然感到不舒服的项目为,不要hesistate发送一个常规修补程序。

    所有贡献的代码都必须符合 Apache许可证 2.0

    许可证

    许可证在许可证下,版本 2.0

    ViewFlow for AndroidViewFlow for Android



    文章标签:VIEW  滚动  Scroller  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语