Android 工具栏中的刷新图标现在是否被认为已弃用('swipe to refresh' 是否完全取代了它)?

Is a refresh icon in an Android Toolbar considered deprecated now (did 'swipe to refresh' totally take its place)?

我的问题更多是从设计的角度出发,涉及到Material的设计理念。 那么,所有最新的应用程序现在是否都完全依赖 滑动刷新 UX 模式,如果可以应用它(例如,地图活动不能拥有它,因为它们接管了滑动手势)?是不是也"old-school"在Toolbar里放一个刷新图标(就是图中这个ActionBar的样子)?

因为我的应用程序向用户显示实时统计信息,我想确保 90% 的用户会立即知道如何刷新它们。

您可以将其替换为SwipeRefreshLayout

将此添加到您的 xml 文件中:

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/refreshLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ListView
        android:id="@+id/mList"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</android.support.v4.widget.SwipeRefreshLayout>

并且给你 java 文件:

 SwipeRefreshLayout mRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.refreshLayout);

    handler.postDelayed(refreshing, 100);

    mRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            // YOUR TASK HERE.
        }
    });

编辑:

为了让用户知道您的应用程序中有刷新,您可以使用它让它在每次打开应用程序时自动刷新:

private Handler handler = new Handler();


private final Runnable refreshing = new Runnable() {
    public void run() {
        mRefreshLayout.setRefreshing(true);
        try {
            if (mRefreshLayout.isRefreshing()) {
                // YOUR TASK HERE.
                handler.removeCallbacks(this);
            } else {
                mRefreshLayout.setRefreshing(false);
            }
        } catch (Exception e) {
            Log.e("", e.getMessage(), e);
        }
    }
};

onPreExecute() 的任务中添加:

if (!mRefreshLayout.isRefreshing()) {
        mRefreshLayout.setRefreshing(true);
 }

并在 onPostExecute() 中添加:

mRefreshLayout.setRefreshing(false);

Don't forget handler.postDelayed(refreshing, 100); after defining the SwipeRefreshLayout view.

https://www.google.de/design/spec/patterns/swipe-to-refresh.html

Alternatively, the manual refresh method requires users to initiate content updates via an action or gesture.

注意:一个动作或手势。

material设计指南并没有禁止按钮,只是没有给予这样的重视。但如果它对您的应用来说是一个重要的操作,您当然应该使用它。

https://www.google.com/design/icons/#ic_refresh