【问题标题】:For designing dynamic layout in android like the status bar in the home screen用于在 android 中设计动态布局,如主屏幕中的状态栏
【发布时间】:2011-09-14 20:28:42
【问题描述】:

如何在 android 中进行布局,例如 主屏幕中的状态栏,它允许用户将状态栏拖动到任意高度。布局还应允许用户向上或向下滑动以完全扩展或收缩布局。

【问题讨论】:

    标签: android android-layout android-gesture


    【解决方案1】:

    你的意思是SlidingDrawer之类的吗?

    可以这样使用:

    /src - SliderActivity.java:

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.SlidingDrawer;
    import android.widget.SlidingDrawer.OnDrawerCloseListener;
    import android.widget.SlidingDrawer.OnDrawerOpenListener;
    
    public class SliderActivity extends Activity {
        Button slideHandleButton;
        SlidingDrawer slidingDrawer;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.main);
            slideHandleButton = (Button) findViewById(R.id.slideHandleButton);
            slidingDrawer = (SlidingDrawer) findViewById(R.id.SlidingDrawer);
    
            slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
                @Override
                public void onDrawerOpened() {
                    slideHandleButton.setBackgroundResource(R.drawable.arrowdown);
                }
            });
    
            slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {
                @Override
                public void onDrawerClosed() {
                    slideHandleButton.setBackgroundResource(R.drawable.arrowup);
                }
            });
        }
    }
    

    /res/layout - ma​​in.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout android:id="@+id/LinearLayout01"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:gravity="bottom">
        <SlidingDrawer android:layout_width="wrap_content"
            android:id="@+id/SlidingDrawer" android:handle="@+id/slideHandleButton"
            android:content="@+id/contentLayout" android:padding="10dip"
            android:layout_height="200dip">
            <Button android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:id="@+id/slideHandleButton"
                android:background="@drawable/arrowup"></Button>
            <LinearLayout android:layout_width="wrap_content"
                android:id="@+id/contentLayout" android:orientation="vertical"
                android:gravity="center|top" android:padding="10dip"
                android:background="#505050" android:layout_height="wrap_content">
                <TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
                    android:layout_height="fill_parent" android:layout_weight="8" android:text="Hello Slider"></TextView>
                <Button android:id="@+id/Button02" android:layout_weight="2" android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:text="Do anything"></Button>
            </LinearLayout>
        </SlidingDrawer>
    </LinearLayout>
    

    您的 /res/drawable 文件夹中需要 2 张图片才能使其正常工作,例如本例中的 arrowup.pngarrowdown.png

    【讨论】:

    • 我试过滑动抽屉,但滑动的调整大小或滑动看起来是固定的。我想要一个布局,我可以向上或向下拖动布局以扩展或收缩,就像我们可以将主屏幕中的状态栏拖动到任意高度一样。我可以使用带有手势检测器的滑动抽屉来实现吗?
    猜你喜欢
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多