当我触摸操作栏上的抽屉图标时,我正在从右向左导航打开滑动抽屉。工作正常,关闭切换图标。没问题
我关注http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/
在滑动布局中,我有一个小图标vibrate_ON.png。
现在我想在触摸滑动菜单中的图像时,它将被更改为vibrate_OFF等等,切换,保持滑动菜单打开。
怎么做?
答案 0 :(得分:0)
您可以执行以下操作:
vibrateImageOn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
vibrateImageOff.setVisibility(View.Visible);
vibrateImageOn.setVisibility(View.GONE);
}
});
vibrateImageOff.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
vibrateImageOn.setVisibility(View.Visible);
vibrateImageOff.setVisibility(View.GONE);
}
});
假设你将它们加载到ImageViews
并且它们具有相同的位置,那么这应该有效。虽然,它有点凌乱..
答案 1 :(得分:0)
您可以在滑动菜单中放置布局以获得更多控件。要做到这一点,你必须采取一些措施:
1)布局:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f4f4f4" />
<!-- The navigation drawer -->
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="220dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#fff">
<!-- you can set any layout here -->
<TextView
android:id="@+id/tv_word"
android:text="New words"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:layout_width="210dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
2)处理事件(请勿忘记closeDrawer
)
DrawerLayout mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearLayout);
TextView tv_word = (TextView )findViewById(R.id.tv_word );
tv_word.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDrawerLayout.closeDrawer(linearLayout);//don't forget it
//.....
}
});