Android:3 级滑动抽屉

Posted

技术标签:

【中文标题】Android:3 级滑动抽屉【英文标题】:Android: 3-Stage SlidingDrawer 【发布时间】:2012-09-17 06:46:06 【问题描述】:

我有一个带有 ListView 的 LinearLayout。它上面的布局,向右对齐,也有一个 ListView。 我想将此上部布局实现为 3 级水平 SlidingDrawer(从右到左),例如具有 3 个阶段的小部件: 1) 抽屉完全关闭 2) 抽屉 50% 打开 3)抽屉完全打开占据整个屏幕 当抽屉打开 50% 时,两个 ListView 都应该能够捕捉到点击事件。 谁能帮助我如何实现这一目标?

谢谢

【问题讨论】:

要水平滑动只需改变方向。 1和3很容易实现,参考:developer.android.com/reference/android/widget/…,不能自定义动画和检测50%。您必须创建自己的 CustomSlidingDrawer,w2davids.wordpress.com/android-damn-that-sliding-drawer 谢谢阿尼斯。是的,我知道让它水平化没什么大不了的。但我被困在如何定制它acc。符合我的要求。这是project 我正在为CustomSlidingDrawer 工作。但我无法通过它。 这是我正在做的项目的UI设计要求! 我建议在 50% 之后创建一个透明的 TextView,使用 ViewTreeObserver.OnGlobalLayoutListener 并中继其可见性变化来处理 50% 很抱歉提供的信息不完整。我在下面有一个列表视图,抽屉将在此之上。并且抽屉上也会有一个 listView。当抽屉打开 50% 时,下面的列表视图应该响应触摸事件(itemClick)。所以,如果我放置透明的TextView,如果我是对的,下面的列表视图将不会收到任何事件。 【参考方案1】:

看看这个链接。这应该让你开始:

http://blog.sptechnolab.com/2011/02/10/android/android-sliding-drawer/

没有布局的代码类似于:

public class animation extends Activity 
/** Called when the activity is first created. */
CheckBox c1,c2,c3;
int key=0;

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);

    final TransparentPanel popup = (TransparentPanel) findViewById(R.id.popup_window);
    popup.setVisibility(View.GONE);

    final Button btn=(Button)findViewById(R.id.show_popup_button);
    btn.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View arg0) 
            if(key==0)
                key=1;
                popup.setVisibility(View.VISIBLE);
                btn.setBackgroundResource(R.drawable.slid3_n);
            
            else if(key==1)
                key=0;
                popup.setVisibility(View.GONE);
                btn.setBackgroundResource(R.drawable.slid4_n);
            
        
    );



这只是一个“两阶段”抽屉。对于中间阶段,或者基本上是两个抽屉合二为一,您必须根据自己的需要调整代码。

【讨论】:

感谢 SunnySonic 的链接。但是在通过代码之后,似乎只有弹出窗口的可见性是在点击事件 acc 上调整的。条件。而我需要它来像 SlidingDrawer 那样为抽屉设置动画。并且用户应该能够通过移动手柄(触摸和移动)来打开/关闭手柄,而不仅仅是点击它。 您可以设置打开和关闭的动画。看看developer.android.com/reference/android/widget/…我不知道“你想要的触摸和拖动。你可能无法使用SlidingDrawer原生类。在这个页面上虽然它正在谈论拖动手柄。看看那个:@ 987654323@

以上是关于Android:3 级滑动抽屉的主要内容,如果未能解决你的问题,请参考以下文章

用于按钮的 Android 滑动抽屉

滑动手势不支持用手指在 android 的滑动抽屉中的列表视图上

在Xamarin android中从右向左滑动抽屉

如何实现一个滑动整个活动内容的 Android 导航抽屉?

Android:在 Eclipse 的图形布局中打开滑动抽屉?

如何使用滑动抽屉更改ActionBar的颜色?