非常常见的安卓视图流 - FlowLayout

2016-09-22      219      Android
项目简介

FlowLayout

一个自定义布局,可以显示内容,空白视图,进度条和网络连接状态。

Why this layout

一个非常常见的安卓视图流:

  • 从远程服务获取数据时显示进度条。
  • 如果结果为空:显示一个带有自定义信息的空白视图并隐藏进度条。
  • 如果结果不为空:显示内容并隐藏进度条。
  • 当电话未连接或者需要Internet连接时显示通知。

FlowLayout以一种自定义的方式使用很少的代码为你实现这些效果。

How

FlowLayout扩展了FrameLayout。因此可以将它作为一个常规视图添加到你的视图中并在其中响应:

在你的activity_layout.xml:

<com.beltaief.flowlayout.FlowLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/flow_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    // content goes here

</com.beltaief.flowlayout.FlowLayout>

然后在Activity/Fragment中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);

    // lookup for the layout
    FlowLayout flowLayout = (FlowLayout)findViewById(R.id.flow_layout);

    //set mode progress
    flowLayout.setMode(ViewMode.PROGRESS);

    // fetch data
    ...

    // assign result to the view
    if (data.isEmpty()) {
      flowLayout.setMode(ViewMode.EMPTY);
    } else {
      flowLayout.setMode(ViewMode.CONTENT);
      // show the data in the view
      ...
    }

    ... 
    // or set error view
    flowLayout.setMode(ViewMode.ERROR);
}
内容模式 空白模式

截屏