我想将导航抽屉设置为完全透明,并且当用户滑动打开导航抽屉时,它逐渐(跟随用户手指)变得不透明。我怎样才能做到这一点?
这是XML布局:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/RLayout02"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#EDEDED" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EDEDED"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:scrollY="0dp" >
<TextView
android:id="@+id/welcomeHeader"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="0dp"
android:background="@drawable/bg_card_blue"
android:gravity="center_horizontal|center_vertical"
android:text="@string/welcomeHeader"
android:textColor="#07BDEC"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/swipeOver"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/welcomeInfo"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:background="@drawable/bg_card_red"
android:gravity="center_horizontal|center_vertical"
android:onClick="move"
android:text="@string/swipe"
android:textColor="#EC135A"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/welcomeInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/swipeOver"
android:layout_below="@+id/welcomeHeader"
android:layout_marginTop="16dp"
android:background="@drawable/my_button"
android:gravity="center_horizontal|center_vertical"
android:lineSpacingExtra="2sp"
android:text="@string/welcomeInfo"
android:textSize="14sp" />
</RelativeLayout>
</RelativeLayout>
<ImageView
android:id="@+id/imgMin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:paddingBottom="10dp"
android:paddingLeft="70dp"
android:paddingRight="70dp"
android:src="@drawable/mp_black"
android:visibility="invisible" />
</FrameLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white"
android:choiceMode="singleChoice"
android:divider="#DDDDDD"
android:dividerHeight="0.5dp" />
答案 0 :(得分:0)
您可能已经实施了DrawerLayout.DrawerListener
(您应该使用onDrawerOpened
和onDrawerClosed
)我不确定但是您可以尝试onDrawerSlide
你正在滑动抽屉。
从而给出参数“偏移”。我相信这是新的偏移(滑动距离)
这给出了0到1之间的值。
在这种方法中,您可以尝试更改抽屉的alpha。
试试这个:
ActionbarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
@Override
onDrawerOpened(){};
@Override
onDrawerClosed(){};
修改强>
@Override
onDrawerSlide(View drawerview, float slideoffset){
drawerview.setAlpha((1/255)*slideoffset);
}
尝试为抽屉视图设置alpha。它也不应该为子视图设置alpha。
这只是一个快速草稿,所以我不确定它是否完美有效(特别是对于alpha公式)但你应该朝这个方向看一下这个。
SHADOW EDIT:
@Override
onDrawerSlide(View drawerview, float slideoffset){
drawerview.setAlpha((1/255)*slideoffset);
shadowDrawable.setAlpha((1/255)*slideoffset);
mDrawerLayout.setDrawerShadow(shadowDrawable);
}