From 9a0439c6e07e209dffd50cc467501f04e919e066 Mon Sep 17 00:00:00 2001 From: Daniele Gobbetti Date: Sat, 1 Apr 2017 17:06:38 +0200 Subject: [PATCH] Apply some Material design guidelines to the app management - replace the PagerTabStrip with a TabLayout (moved to top) - change the row element to adhere to the guidelines wrt spacing - move the FAB a bit and hide it when scrolling down, scroll up to reveal it again --- .../AbstractAppManagerFragment.java | 13 +++++++ .../main/res/layout/activity_appmanager.xml | 9 +++-- .../layout/activity_fragmentappmanager.xml | 12 +++---- .../item_with_details_and_drag_handle.xml | 36 ++++++++++++------- 4 files changed, 46 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java index c9ebb69a..e2ad884f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java @@ -24,6 +24,7 @@ import android.content.IntentFilter; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.widget.LinearLayoutManager; @@ -259,9 +260,21 @@ public abstract class AbstractAppManagerFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final FloatingActionButton appListFab = ((FloatingActionButton) getActivity().findViewById(R.id.fab)); View rootView = inflater.inflate(R.layout.activity_appmanager, container, false); RecyclerView appListView = (RecyclerView) (rootView.findViewById(R.id.appListView)); + + appListView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + if (dy > 0) { + appListFab.hide(); + } else if (dy < 0) { + appListFab.show(); + } + } + }); appListView.setLayoutManager(new LinearLayoutManager(getActivity())); mGBDeviceAppAdapter = new GBDeviceAppAdapter(appList, R.layout.item_with_details_and_drag_handle, this); appListView.setAdapter(mGBDeviceAppAdapter); diff --git a/app/src/main/res/layout/activity_appmanager.xml b/app/src/main/res/layout/activity_appmanager.xml index ed6a70f3..943de9d8 100644 --- a/app/src/main/res/layout/activity_appmanager.xml +++ b/app/src/main/res/layout/activity_appmanager.xml @@ -5,7 +5,10 @@ tools:context="nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AbstractAppManagerFragment"> + android:id="@+id/appListView" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" + android:divider="@null" /> diff --git a/app/src/main/res/layout/activity_fragmentappmanager.xml b/app/src/main/res/layout/activity_fragmentappmanager.xml index d32ada66..95915b0a 100644 --- a/app/src/main/res/layout/activity_fragmentappmanager.xml +++ b/app/src/main/res/layout/activity_fragmentappmanager.xml @@ -3,10 +3,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - android:paddingBottom="0px" - android:paddingLeft="0px" - android:paddingRight="0px" - android:paddingTop="0px" tools:context=".activities.appmanager.AppManagerActivity"> - + android:layout_gravity="top" /> @@ -39,7 +35,7 @@ android:src="@drawable/ic_add_white" app:elevation="6dp" app:pressedTranslationZ="12dp" - android:layout_marginBottom="10dp" - android:layout_marginRight="10dp" /> + android:layout_marginBottom="30dp" + android:layout_marginEnd="10dp" /> diff --git a/app/src/main/res/layout/item_with_details_and_drag_handle.xml b/app/src/main/res/layout/item_with_details_and_drag_handle.xml index 98d39a23..316fc03a 100644 --- a/app/src/main/res/layout/item_with_details_and_drag_handle.xml +++ b/app/src/main/res/layout/item_with_details_and_drag_handle.xml @@ -4,50 +4,60 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/activatedBackgroundIndicator" - android:padding="8dp"> + android:minHeight="60dp"> + android:paddingBottom="8dp" + android:paddingTop="8dp"> + android:textAppearance="@style/TextAppearance.AppCompat.Subhead" /> + android:text="Item Description" + android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> \ No newline at end of file