Android 如何使滚动时listview末尾的按钮消失?

Android 如何使滚动时listview末尾的按钮消失?,android,listview,button,Android,Listview,Button,我想使用FAB for project的listview来添加项。尽管我想将释放/隐藏的动画设置为滚动。 我这样做: MainActivity.java类: public class MainActivity extends Activity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt

我想使用FAB for project的listview来添加项。尽管我想将释放/隐藏的动画设置为滚动。 我这样做:

MainActivity.java类:

public class MainActivity extends Activity  {
private ListView listView;

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

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(),AddActivity.class);
            startActivity(intent);
        }
    });
    listView = (ListView) findViewById(R.id.ListView);

 ..  
}
}

activity_main.xml:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="vow_note.maxsoft.com.vownote.MainActivity">
<include layout="@layout/content_main" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_menu_add" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<LinearLayout android:layout_width="match_parent"
    android:layout_height="70dp"
    android:orientation="horizontal"
    android:gravity="center_vertical|center"
    android:padding="3dp"
    android:background="#000000"
    android:id="@+id/ll">
   ...
</LinearLayout>

<ListView android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/ListView"
    android:layout_gravity="right"
    android:background="#000000"
    android:paddingBottom="50dp"
    >
</ListView>

content_main.xml:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="vow_note.maxsoft.com.vownote.MainActivity">
<include layout="@layout/content_main" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_menu_add" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<LinearLayout android:layout_width="match_parent"
    android:layout_height="70dp"
    android:orientation="horizontal"
    android:gravity="center_vertical|center"
    android:padding="3dp"
    android:background="#000000"
    android:id="@+id/ll">
   ...
</LinearLayout>

<ListView android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/ListView"
    android:layout_gravity="right"
    android:background="#000000"
    android:paddingBottom="50dp"
    >
</ListView>

...

最后,fabidescroll.java:

public class FABHideScroll extends FloatingActionButton.Behavior {
public FABHideScroll(Context context, AttributeSet attrs) {
    super();
}

@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
    super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);

    //child -> Floating Action Button
    if (child.getVisibility() == View.VISIBLE && dyConsumed > 0) {
        child.hide();
    } else if (child.getVisibility() == View.GONE && dyConsumed < 0) {
        child.show();
    }
}

@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {
    return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL;
}
公共类fabidescroll扩展了FloatingActionButton.Behavior{
公共FABHideScroll(上下文、属性集属性){
超级();
}
@凌驾
public void onNestedScroll(Coordinator布局Coordinator布局,FloatingActionButton子对象,视图目标,int-dxConsumed,int-dyConsumed,int-dxUnused,int-dyUnused){
super.onNestedScroll(协调布局、子项、目标、dxConsumed、dyConsumed、dxUnconsumed、dyUnconsumed);
//子->浮动操作按钮
if(child.getVisibility()==View.VISIBLE&&dyConsumed>0){
child.hide();
}else if(child.getVisibility()==View.GONE&&dyConsumed<0){
child.show();
}
}
@凌驾
开始嵌套滚动时的公共布尔值(CoordinatorLayout CoordinatorLayout,FloatingActionButton子级,查看directTargetChild,查看目标,int嵌套滚动轴){
返回NestedScrollAxis==ViewCompat.SCROLL\u AXIS\u VERTICAL;
}
}

我知道它们应该有问题,因为它不运行


我该怎么解决呢?非常感谢

必须使用
浮动操作按钮
并在滚动或需要时隐藏它。在这里,当我尝试实现此行为时,我遵循以下教程
我也希望能帮助你

请检查您的应用程序主题。它必须是
主题.AppCompat

最美好的祝愿。

谢谢你的建议教程,但我有一个问题,那就是我该如何应对主要活动?我以前在MyActivity中创建过列表视图。所以我不知道哪一个必须是主要活动,我如何定义另一个?谢谢