小编ykr*_*sik的帖子

Android:SlidingDrawer在SurfaceView下消失

我正在尝试通过FrameLayout创建一个带有LinearLayout内容的SlidingDrawer.

起初它看起来都很好,我在屏幕底部得到了SlidingDrawer的句柄.但是,如果我开始向上拖动手柄并且内容开始显示,它将被手柄的边框矩形剪切.如果我一直向上拖动手柄,最终会显示整个内容,但是如果我现在向下拖动手柄,它将被内容的边框矩形剪切.此外,如果句柄一直向上,一旦我开始拖动它,整个内容就会消失.
我仍然可以点击手柄应该在屏幕上的位置,拖动它并显示内容,但我需要猜测手柄的位置.

似乎导致这种情况的原因是我在SlidingDrawer之前的xml文件中有一个SurfaceView.
从xml中删除视图可以解决此问题,但我需要此视图.

这是xml:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">

    <!--  Removing this DrawView from here solves the problem -->
    <com.package.DrawView 
        android:id="@+id/main"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

    <SlidingDrawer  
        android:id="@+id/SlidingDrawer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:allowSingleTap="true"
        android:animateOnClick="true"
        android:handle="@+id/slideHandleButton"
        android:content="@+id/contentLayout" 
        android:padding="10dip">

        <Button
            android:id="@+id/slideHandleButton"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/sliding_button">
        </Button>

        <LinearLayout
            android:id="@+id/contentLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <Button 
                android:id="@+id/clearButton" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Test">
            </Button>

        </LinearLayout>

    </SlidingDrawer>

</FrameLayout>   
Run Code Online (Sandbox Code Playgroud)

Java的:

package com.package;

import android.app.Activity;
import android.os.Bundle;

public class SlideTest extends Activity 
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle …
Run Code Online (Sandbox Code Playgroud)

android slidingdrawer

10
推荐指数
1
解决办法
3744
查看次数

Java:消除死代码

我想知道Java将如何处理以下场景:

假设我有一个名为Debug的类,它看起来像这样:

public class Debug 
{
    private static final boolean isAssertEnabled = true;

    public static void assertTrue(boolean b, String errorMessage) {
        if (isAssertEnabled) {
            if (!b) {
                throw new RuntimeException(errorMessage);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并假设我的代码有一个看起来像这样的调用:

...
Debug.assertTrue((x + y != z) && (v - u > w), "Some error message");
....
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  1. 如果isAssertEnabled标志设置为false,那么整个对Debug.assertTrue的调用是否会被编译出来?请注意,检查isAssertEnabled == true是否仅在函数调用后在函数内部进行.
  2. 如果整个调用都被编译出来,那是否也意味着编译出布尔表达式的评估?如果没有任何评价表达将是一种浪费.

谢谢你的帮助!

java compilation dead-code

10
推荐指数
1
解决办法
4050
查看次数

标签 统计

android ×1

compilation ×1

dead-code ×1

java ×1

slidingdrawer ×1