我想使用FAB作爲項目的列表視圖添加項目。雖然我想爲滾動發佈/隱藏設置動畫。 我折騰這樣的:如何使按鈕消失,在滾動的列表視圖的末尾?
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" />
content_main.xml:
<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>
,並在最後,FABHideScroll.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;
}
}
我知道應該有他們的問題,因爲它不運行。
我該如何解決它?非常感謝!
感謝您的建議教程,但我有關於如何防止MainActivity的問題? 我以前在MyActivity中創建過列表視圖。所以我不知道哪一個必須是MainActivity,我怎樣才能定義另一個?謝謝。 –