Android的SlidingDrawer不会禁用“下的”抽屉按钮 [英] Android SlidingDrawer doesn't disable buttons 'under' the drawer

查看:112
本文介绍了Android的SlidingDrawer不会禁用“下的”抽屉按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是该方案: 我有一个按钮B,和slidingdrawer,当拉出覆盖了整个屏幕。 当我拔出屏幕,触摸其中B曾经是可见的屏幕,仍然执行其行动。

我怎样才能解决这个?

我发现<一href="http://stackoverflow.com/questions/2596571/how-can-i-disable-a-view-behind-my-slidingdrawer-in-android">this螺纹描述同样的问题,但没有答案被接受和那些给予我没能获得工作。

更新:我有一个名为Report.java文件,相应地report.xml文件,如下图所示。

 &LT; SlidingDrawer
     机器人:ID =@ + ID /抽屉
     机器人:layout_width =FILL_PARENT
     机器人:layout_height =WRAP_CONTENT
     机器人:手柄=@ + ID / reportSlideButton
     机器人:CONTENT =@ + ID / reportContent
     机器人:方向=横向&GT;

    &LT;的LinearLayout
        机器人:ID =@ ID / reportContent
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT
        机器人:方向=垂直
        机器人:layout_weight =1
        机器人:填充=10dp
        机器人:背景=@色/ bg_c​​olor&GT;
            &LT; TextView的机器人:ID =@ + ID / garbageTypeTextView
                机器人:layout_height =WRAP_CONTENT
                机器人:文字颜色=@色/文本
                机器人:layout_width =FILL_PARENT
                机器人:文本=@字符串/ garbageTypeString
                机器人:TEXTSTYLE =黑体/&GT;
            &LT;微调机器人:ID =@ + ID / garbageTypeSpinner
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_width =FILL_PARENT/&GT;
            &LT; TextView的机器人:ID =@ + ID / textViewForDateTitle
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:文本=@字符串/ dateString
                机器人:文字颜色=@色/文本
                机器人:TEXTSTYLE =黑体/&GT;
            &LT; TextView的机器人:ID =@ + ID / dateTextView
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:文字颜色=@色/文本/&GT;
            &LT; TextView的机器人:ID =@ + ID / textViewForAddressTitle
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_width =WRAP_CONTENT
                机器人:文本=@字符串/ addressString
                机器人:文字颜色=@色/文本
                机器人:TEXTSTYLE =黑体/&GT;
            &LT; TextView的机器人:ID =@ + ID / addressTextView
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:文字颜色=@色/文本/&GT;
            &LT; TextView的机器人:ID =@ + ID / textViewForPositionTitle
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_width =WRAP_CONTENT
                机器人:文本=@字符串/ positionString
                机器人:文字颜色=@色/文本
                机器人:TEXTSTYLE =黑体/&GT;
            &LT; TextView的机器人:ID =@ + ID / positionTextView
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =WRAP_CONTENT
                机器人:文字颜色=@色/文本/&GT;
            &LT; TextView的机器人:ID =@ + ID / textViewForCommentTitle
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_width =WRAP_CONTENT
                机器人:文本=@字符串/ commentString
                机器人:文字颜色=@色/文本
                机器人:TEXTSTYLE =黑体/&GT;
            &LT; EditText上机器人:ID =@ + ID / commentTextBox
                机器人:layout_height =FILL_PARENT
                机器人:layout_width =FILL_PARENT
                机器人:layout_weight =1/&GT;
            &LT;按钮机器人:ID =@ + ID / sendCrapportButton
                机器人:的onClick =sendCrapport
                机器人:layout_height =WRAP_CONTENT
                机器人:layout_width =FILL_PARENT
                机器人:文本=Skicka融洽/&GT;

    &LT; / LinearLayout中&GT;
        &LT;按钮机器人:ID =@ ID / reportSlideButton
            机器人:layout_width =40dp
            机器人:layout_height =40dp
            机器人:文本=&gt;中/&GT;
&LT; / SlidingDrawer&GT;
 

添加组件:

 保护无效addComponents(){
    takePictureButton =(的ImageButton)findViewById(R.id.takePictureButton);
    slidingDrawer =(SlidingDrawer)findViewById(R.id.drawer);
}
 

解决方案

您可以添加机器人:可点击=true将您的滑块内容标记(ID reportContent)。这样,它不会点击通过。滑块在你的按钮应该仍然工作。我希望;)

This is the scenario: I have a button B, and a slidingdrawer that when pulled out covers the entire screen. When I pull out the screen, and touch the screen where B used to be visible, its action is still executed.

How can I get around this?

I found this thread describing the very same problem, but no answer was accepted and the ones given I didn't manage to get working.

UPDATE: I have a file named Report.java, with a corresponding report.xml file as seen below.

    <SlidingDrawer
     android:id="@+id/drawer"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:handle="@+id/reportSlideButton"
     android:content="@+id/reportContent"
     android:orientation="horizontal">

    <LinearLayout 
        android:id="@id/reportContent" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:orientation="vertical" 
        android:layout_weight="1"
        android:padding="10dp"
        android:background="@color/bg_color">
            <TextView android:id="@+id/garbageTypeTextView" 
                android:layout_height="wrap_content" 
                android:textColor="@color/text" 
                android:layout_width="fill_parent" 
                android:text="@string/garbageTypeString" 
                android:textStyle="bold"/>
            <Spinner android:id="@+id/garbageTypeSpinner"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"/>
            <TextView android:id="@+id/textViewForDateTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="@string/dateString"
                android:textColor="@color/text" 
                android:textStyle="bold" />
            <TextView android:id="@+id/dateTextView"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:textColor="@color/text" />
            <TextView android:id="@+id/textViewForAddressTitle"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
                android:text="@string/addressString"
                android:textColor="@color/text" 
                android:textStyle="bold" />
            <TextView android:id="@+id/addressTextView"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:textColor="@color/text" />
            <TextView  android:id="@+id/textViewForPositionTitle"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content" 
                android:text="@string/positionString"
                android:textColor="@color/text" 
                android:textStyle="bold" />
            <TextView android:id="@+id/positionTextView"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:textColor="@color/text" />
            <TextView android:id="@+id/textViewForCommentTitle"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
                android:text="@string/commentString"
                android:textColor="@color/text" 
                android:textStyle="bold" />
            <EditText android:id="@+id/commentTextBox"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent" 
                android:layout_weight="1"/>
            <Button android:id="@+id/sendCrapportButton" 
                android:onClick="sendCrapport"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:text="Skicka rapport" />

    </LinearLayout>
        <Button android:id="@id/reportSlideButton"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:text=">"/>
</SlidingDrawer>

Adding components:

protected void addComponents() {
    takePictureButton = (ImageButton) findViewById(R.id.takePictureButton);
    slidingDrawer = (SlidingDrawer) findViewById(R.id.drawer);
}

解决方案

you could add android:clickable="true" to your slider content tag (id reportContent). that way it won't "click through". your buttons inside the slider should still work.. i hope ;)

这篇关于Android的SlidingDrawer不会禁用“下的”抽屉按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆