Add SlidingDrawerLayout

This commit is contained in:
seven332 committed 2016-03-31 15:26:27 +08:00
1 parent b62b6c7b35
commit 3b9d040881
8 files changed
+1428 -12

No files matched your search

@@ -70,6 +70,8 @@ import com.hippo.scene.StageActivity;
import com.hippo.unifile.UniFile;
import com.hippo.util.PermissionRequester;
import com.hippo.widget.LoadImageView;
import com.hippo.widget.slidingdrawerlayout.SlidingDrawerLayout;
import com.hippo.yorozuya.ResourcesUtils;
import com.hippo.yorozuya.ViewUtils;
public final class MainActivity extends StageActivity
@@ -97,7 +99,7 @@ public final class MainActivity extends StageActivity
Whole life cycle
---------------*/
@Nullable
private DrawerLayout mDrawerLayout;
private SlidingDrawerLayout mDrawerLayout;
@Nullable
private NavigationView mNavView;
@Nullable
@@ -290,13 +292,14 @@ public final class MainActivity extends StageActivity
protected void onCreate2(@Nullable Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
mDrawerLayout = (DrawerLayout) ViewUtils.$$(this, R.id.draw_view);
mDrawerLayout = (SlidingDrawerLayout) ViewUtils.$$(this, R.id.draw_view);
mNavView = (NavigationView) ViewUtils.$$(this, R.id.nav_view);
mRightDrawer = (FrameLayout) ViewUtils.$$(this, R.id.right_drawer);
View headerLayout = mNavView.getHeaderView(0);
mAvatar = (LoadImageView) ViewUtils.$$(headerLayout, R.id.avatar);
mDisplayName = (TextView) ViewUtils.$$(headerLayout, R.id.display_name);
mDrawerLayout.setStatusBarColor(ResourcesUtils.getAttrColor(this, R.attr.colorPrimaryDark));
// Pre-L need shadow drawable
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow_left, Gravity.LEFT);
@@ -387,9 +390,9 @@ public final class MainActivity extends StageActivity
baseScene.getLayoutInflater2(), mRightDrawer, savedInstanceState);
if (drawerView != null) {
mRightDrawer.addView(drawerView);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
mDrawerLayout.setDrawerLockMode(SlidingDrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
} else {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
mDrawerLayout.setDrawerLockMode(SlidingDrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
}
}
@@ -0,0 +1,55 @@
/*
* Copyright 2016 Hippo Seven
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hippo.ehviewer.widget;
import android.content.Context;
import android.util.AttributeSet;
import com.hippo.widget.DrawerView;
import com.hippo.widget.slidingdrawerlayout.SlidingDrawerLayoutChild;
public class EhDrawerView extends DrawerView implements SlidingDrawerLayoutChild {
private int mFitPaddingTop;
public EhDrawerView(Context context) {
super(context);
}
public EhDrawerView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public EhDrawerView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setFitPadding(int top, int bottom) {
mFitPaddingTop = top;
}
@Override
public int getLayoutPaddingTop() {
return mFitPaddingTop;
}
@Override
public int getLayoutPaddingBottom() {
return 0;
}
}
@@ -0,0 +1,55 @@
/*
* Copyright 2016 Hippo Seven
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hippo.ehviewer.widget;
import android.content.Context;
import android.util.AttributeSet;
import com.hippo.scene.StageLayout;
import com.hippo.widget.slidingdrawerlayout.SlidingDrawerLayoutChild;
public class EhStageLayout extends StageLayout implements SlidingDrawerLayoutChild {
private int mFitPaddingTop;
public EhStageLayout(Context context) {
super(context);
}
public EhStageLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public EhStageLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setFitPadding(int top, int bottom) {
mFitPaddingTop = top;
}
@Override
public int getLayoutPaddingTop() {
return mFitPaddingTop;
}
@Override
public int getLayoutPaddingBottom() {
return 0;
}
}
@@ -23,7 +23,7 @@ import android.widget.FrameLayout;
import com.hippo.yorozuya.LayoutUtils;
public class DrawView extends FrameLayout {
public class DrawerView extends FrameLayout {
private static final int DEFAULT_MAX_WIDTH = 280;
@@ -33,17 +33,17 @@ public class DrawView extends FrameLayout {
private int mMaxWidth;
public DrawView(Context context) {
public DrawerView(Context context) {
super(context);
init(context, null);
}
public DrawView(Context context, AttributeSet attrs) {
public DrawerView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
public DrawView(Context context, AttributeSet attrs, int defStyleAttr) {
public DrawerView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,26 @@
/*
* Copyright 2016 Hippo Seven
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hippo.widget.slidingdrawerlayout;
public interface SlidingDrawerLayoutChild {
void setFitPadding(int top, int bottom);
int getLayoutPaddingTop();
int getLayoutPaddingBottom();
}