先看下效果 ,图中蓝色区域为SlidingDrawer,SlidingDrawer关闭,打开时,红色区域和绿色区域自动适应。
展开前:
展开后:
上面地址所说的,红色区域不会自动适应。
红色区域自动适应思路:
很简单,在onMeasure 方法中根据 isOpened()状态,分别计算不同宽度或者高度。
在SlidingDrawer关闭或者打开时重新调用requestLayout() 计算layout宽高。
下面是经过修改的代码:
package com.eshion.soft.tms;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.SlidingDrawer;
/**
*
* wrap size for SlidingDrawer
*
*/
public class WrapSlidingDrawer extends SlidingDrawer implements SlidingDrawer.OnDrawerOpenListener,SlidingDrawer.OnDrawerCloseListener{
private boolean mVertical;
private int mTopOffset;
private final static boolean DEBUG = false;
private final static String TAG = "WrapSlidingDrawer";
public WrapSlidingDrawer(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
int orientation = attrs.getAttribu