【问题标题】:how to change image inside sliding drawer on touch?如何在触摸时更改滑动抽屉内的图像?
【发布时间】:2015-04-19 02:38:49
【问题描述】:

当我触摸操作栏上的抽屉图标时,我有一个从右到左导航的滑动抽屉打开。工作正常并关闭切换图标。没问题

我关注了http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

在滑动布局中,我有一个小图标 vibrate_ON.png。

现在我希望当我触摸滑动菜单中的图像时,它将更改为 vibrate_OFF 等切换,保持滑动菜单打开。

怎么做?

【问题讨论】:

    标签: android


    【解决方案1】:

    你可以这样做:

    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 并且它们具有相同的位置,那么这应该可以工作。不过,有点乱。。

    【讨论】:

      【解决方案2】:

      您可以在滑动菜单中放置布局以获得更多控件。为此,您必须执行一些步骤:

      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
              //.....
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多