OSDN Git Service

Wrapping thw widgetList inside a layout, so that it has the same view structure as...
authorSunny Goyal <sunnygoyal@google.com>
Fri, 19 Feb 2016 17:34:09 +0000 (09:34 -0800)
committerSunny Goyal <sunnygoyal@google.com>
Fri, 19 Feb 2016 17:35:43 +0000 (09:35 -0800)
Change-Id: I28b035beb1c7e13101ec20ff671d3cad5f757c0e

res/layout/widgets_view.xml
src/com/android/launcher3/BaseContainerView.java
src/com/android/launcher3/allapps/AllAppsContainerView.java
src/com/android/launcher3/widget/WidgetsContainerView.java

index e64f83a..c51ec80 100644 (file)
         android:elevation="2dp"
         android:visibility="invisible" />
 
-    <com.android.launcher3.widget.WidgetsRecyclerView
+    <FrameLayout
         android:id="@+id/main_content"
-        android:theme="@style/Theme.Dark.CustomOverscroll"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
         android:layout_gravity="center"
         android:elevation="15dp"
-        android:visibility="gone" />
+        android:visibility="gone"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <com.android.launcher3.widget.WidgetsRecyclerView
+            android:id="@+id/widgets_list_view"
+            android:theme="@style/Theme.Dark.CustomOverscroll"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    </FrameLayout>
+
 
 </com.android.launcher3.widget.WidgetsContainerView>
\ No newline at end of file
index b8e7b63..7de2774 100644 (file)
@@ -138,6 +138,10 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
         mRevealView.setBackground(background.getConstantState().newDrawable());
         mContent.setBackground(background);
 
+        // We let the content have a intent background, but still have full width.
+        // This allows the scroll bar to be used responsive outside the background bounds as well.
+        mContent.setPadding(0, 0, 0, 0);
+
         Rect bgPadding = new Rect();
         background.getPadding(bgPadding);
         onUpdateBgPadding(padding, bgPadding);
index 997f0fa..57da6c5 100644 (file)
@@ -371,11 +371,6 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
         mAdapter.updateBackgroundPadding(bgPadding);
         mElevationController.updateBackgroundPadding(bgPadding);
 
-        // Hack: We are going to let the recycler view take the full width, so reset the padding on
-        // the container to zero after setting the background and apply the top-bottom padding to
-        // the content view instead so that the launcher transition clips correctly.
-        getContentView().setPadding(0, 0, 0, 0);
-
         // Pad the recycler view by the background padding plus the start margin (for the section
         // names)
         int maxScrollBarWidth = mAppsRecyclerView.getMaxScrollbarWidth();
index 8b9ac1f..0173eb7 100644 (file)
@@ -20,7 +20,6 @@ import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
-import android.graphics.drawable.InsetDrawable;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView.State;
 import android.util.AttributeSet;
@@ -65,7 +64,7 @@ public class WidgetsContainerView extends BaseContainerView
     private IconCache mIconCache;
 
     /* Recycler view related member variables */
-    private WidgetsRecyclerView mView;
+    private WidgetsRecyclerView mRecyclerView;
     private WidgetsListAdapter mAdapter;
 
     /* Touch handling related member variables. */
@@ -74,8 +73,6 @@ public class WidgetsContainerView extends BaseContainerView
     /* Rendering related. */
     private WidgetPreviewLoader mWidgetPreviewLoader;
 
-    private Rect mPadding = new Rect();
-
     public WidgetsContainerView(Context context) {
         this(context, null);
     }
@@ -98,11 +95,11 @@ public class WidgetsContainerView extends BaseContainerView
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
-        mView = (WidgetsRecyclerView) getContentView();
-        mView.setAdapter(mAdapter);
+        mRecyclerView = (WidgetsRecyclerView) getContentView().findViewById(R.id.widgets_list_view);
+        mRecyclerView.setAdapter(mAdapter);
 
         // This extends the layout space so that preloading happen for the {@link RecyclerView}
-        mView.setLayoutManager(new LinearLayoutManager(getContext()) {
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()) {
             @Override
             protected int getExtraLayoutSpace(State state) {
                 DeviceProfile grid = mLauncher.getDeviceProfile();
@@ -110,8 +107,6 @@ public class WidgetsContainerView extends BaseContainerView
                         + grid.availableHeightPx * PRELOAD_SCREEN_HEIGHT_MULTIPLE;
             }
         });
-        mPadding.set(getPaddingLeft(), getPaddingTop(), getPaddingRight(),
-                getPaddingBottom());
     }
 
     //
@@ -119,7 +114,7 @@ public class WidgetsContainerView extends BaseContainerView
     //
 
     public void scrollToTop() {
-        mView.scrollToPosition(0);
+        mRecyclerView.scrollToPosition(0);
     }
 
     //
@@ -329,14 +324,14 @@ public class WidgetsContainerView extends BaseContainerView
     //
     @Override
     protected void onUpdateBgPadding(Rect padding, Rect bgPadding) {
-        mView.updateBackgroundPadding(bgPadding);
+        mRecyclerView.updateBackgroundPadding(bgPadding);
     }
 
     /**
      * Initialize the widget data model.
      */
     public void addWidgets(WidgetsModel model) {
-        mView.setWidgets(model);
+        mRecyclerView.setWidgets(model);
         mAdapter.setWidgetsModel(model);
         mAdapter.notifyDataSetChanged();
     }