Android视觉效果隐藏和显示项目

时间:2018-06-19 17:48:18

标签: android android-layout

你好,我试图重现我在活动中完成的操作,当我将列表向下移动时,它会以动画方式隐藏一些项目。

请注意,在此示例中,搜索字段未累加。

任何人都知道如何完成下面的GIF中显示的操作吗?

Example

感谢{@ 1}将帮助解决方案放入了ListView

android: nestedScrollingEnabled = "true"

1 个答案:

答案 0 :(得分:0)

要实现这一点,您可以使用协调器布局

例如

主要活动

public class MainActivity extends AppCompatActivity {
private List<String> mList = new ArrayList<>();
private RecyclerView mRecyclerView;

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

    mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    prepareData();
    setUpRecyclerView();
}

private void prepareData() {
    Random random = new Random();
    for (int i = 0; i < 100; i++)
        mList.add(String.valueOf(random.nextInt(100)));
}

private void setUpRecyclerView() {
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager
        .VERTICAL, false));
    mRecyclerView.setHasFixedSize(true);
    ListAdapter listAdapter = new ListAdapter(mList);
    mRecyclerView.setAdapter(listAdapter);
}

}

布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/color_primary"
        android:title="@string/app_name"
        app:layout_scrollFlags="scroll|enterAlways"
        app:titleTextColor="@android:color/white"/>

</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>

基本上可以隐藏和显示视图的行是:

app:layout_scrollFlags="scroll|enterAlways",应将其添加到要隐藏/显示的视图中

app:layout_behavior="@string/appbar_scrolling_view_behavior"在您的列表或滚动视图中

在上面的示例中,这些行位于工具栏和RecyclerView中,因此,当滚动recyclerview时,工具栏应隐藏