Android 如何在GoWeather应用程序上创建一个类似滑块的应用程序?

Android 如何在GoWeather应用程序上创建一个类似滑块的应用程序?,android,slider,Android,Slider,go weather应用程序()的底部有一个漂亮的小滑块,位于下图中“周一”、“周二”、“周三”的正上方 除了显示的3天之外,还可以向上拖动滑块以显示更长的每日预测。也可以向下拖动滑块以关闭滑块并隐藏每日图形温度+图标 我假设这不是一个正常的滑块,因为它似乎支持3个位置 屏幕的90%(预测时可见) 屏幕的20%(如下所示) 屏幕的0%(除滑块外不可见) 有人知道如何制作这种类型的UI吗 非常感谢一个代码示例或站点链接。这只是一个布局和小部件的安排, 这是我创建的示例xml,您可以将diff小部

go weather应用程序()的底部有一个漂亮的小滑块,位于下图中“周一”、“周二”、“周三”的正上方

除了显示的3天之外,还可以向上拖动滑块以显示更长的每日预测。也可以向下拖动滑块以关闭滑块并隐藏每日图形温度+图标

我假设这不是一个正常的滑块,因为它似乎支持3个位置

  • 屏幕的90%(预测时可见)
  • 屏幕的20%(如下所示)
  • 屏幕的0%(除滑块外不可见)
  • 有人知道如何制作这种类型的UI吗


    非常感谢一个代码示例或站点链接。

    这只是一个布局和小部件的安排, 这是我创建的示例xml,您可以将diff小部件和布局设计成这样

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:padding="@dimen/padding_medium"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />
    
    
    <SlidingDrawer android:id="@+id/SlidingDrawer" android:handle="@+id/slideHandleButton"
            android:content="@+id/contentLayout" android:layout_width="wrap_content"
            android:layout_height="120dp" android:orientation="vertical"
    
            android:layout_alignParentBottom="true"
            >
    
             <Button 
                 android:layout_width="fill_parent"
                 android:layout_height="10dp" 
                 android:id="@+id/slideHandleButton"
                 android:background="#00868B" />
    
    
             <LinearLayout
                 android:id="@+id/contentLayout"
                 android:layout_width="fill_parent"
                 android:layout_height="150dp"
                 android:background="#90000000"
                 android:gravity="center|top"
                  >
    
                 <FrameLayout
                        android:layout_width="wrap_content"
                        android:layout_height="150dp"
                        android:layout_weight="1"
                     >
    
                     <LinearLayout 
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:gravity="center"
                            android:layout_gravity="center_vertical"
                         >
                     <ImageView
    
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:src="@drawable/diego"
    
                         />
                     <Button
    
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Diego"
    
                         />
                     </LinearLayout>
                 </FrameLayout>
                 <FrameLayout
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_weight="1" 
                     >
                    <LinearLayout 
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:gravity="center"
                            android:layout_gravity="center_vertical"
                         >
                     <ImageView
    
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:src="@drawable/ellie"
    
                         />
                     <Button
    
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Ellie"
    
                         />
                     </LinearLayout>
                 </FrameLayout>
                <FrameLayout
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_weight="1" 
                     >
                     <LinearLayout 
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:gravity="center"
                            android:layout_gravity="center_vertical"
                         >
                     <ImageView
    
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:src="@drawable/scart"
    
                         />
                     <Button
    
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@drawable/sid"
    
                         />
                     </LinearLayout>
                 </FrameLayout>
    
    
            </LinearLayout>
    
    </SlidingDrawer>
    
    
    

    只要把它粘贴到你的程序中,你就会看到工作数据。现在不需要编写代码,您可以根据需要处理相关事件。这里我使用了来自站点的图像,所以下载一些图像或使用您现有的图像并替换代码中使用的可绘制图像。
    希望你能得到这个

    嗨,谢谢你的样品,但我想这不是我想要的。从技术上讲,我想要一个三位抽屉。完全打开、部分打开、关闭。抽屉能半开吗?或者这是一个需要从头开始创建新控件来支持此功能的地方吗?是的,您可以创建类似tat的抽屉。你必须一次设计两个抽屉。一个把手将打开您的第一个抽屉,而那个打开的抽屉将是您下一个抽屉的把手。您必须在第二个抽屉的把手上传递抽屉的布局id。