4

我需要做一个向上滑动的视图,当我单击一个按钮时,它应该从屏幕底部向上滑动。它必须显示在屏幕底部,我需要将其滑动/拖动到屏幕中央。下面的图片更好地解释了它。几乎就像您可以在此处找到的“umano”中的 AndroidSlidingUpPanel :

问题是我希望第一个孩子(我的视图的内容 - 例如图像)填满整个屏幕,并且我希望在单击按钮时显示第二个孩子(实际的底栏)。下面的图片更好地解释了它。如果无法通过更改 AndroidSlidingUpPanel 来做到这一点,我该怎么做?我从来没有处理过这样的观点。我真的很感激任何提示或帮助。非常感谢。

在此处输入图像描述

4

4 回答 4

2

要隐藏或显示面板,您可以使用

显示面板()

方法。

要隐藏它,试试这个:

SlidingUpPanelLayoutslidingPanel = (SlidingUpPanelLayout) findViewById(R.id.sliding_panel); 滑动面板.hidePanel();

让它显现

SlidingUpPanelLayoutslidingPanel = (SlidingUpPanelLayout) findViewById(R.id.sliding_panel); 滑动面板.showPanel();

这仅在 AndroidSlidingUpPanel ( https://github.com/umano/AndroidSlidingUpPanel ) 的 v 2.0 中可用。据我所知,它现在包含在 android 支持库 v13 中,但不确定是否有最新版本。

于 2014-07-16T15:43:43.850 回答
0

您可以检查此库以从屏幕的所有四个边缘拖动内容https://github.com/SimonVT/android-menudrawer

您可以在此菜单抽屉内进行自定义布局以获得预期的结果。

于 2014-02-18T09:32:30.440 回答
0

你可以用 AndroidSlidingUpPanel 做到这一点,只需设置可见性:

android:visibility="GONE"

在视图(面板)的 2° 子级上,并在单击按钮时使用 SlidingUpPanelLayout 上的 .showPane() 和 .hidePane() 来显示/隐藏面板。

于 2014-02-18T11:22:13.630 回答
0

以下库也这样做

https://github.com/Paroca72/sc-widgets

在里面你会发现一个名为 ScSlidingPanel 的小部件。这个小部件的工作方式与其他小部件不同,可以非常轻松地使用和定制。你把它放在一个RelativeLayout里面给一个对齐,它会从那一边打开..左,右,上和下或混合..

在您的特定情况下,您必须将面板与容器底部对齐,它将从底部滑动。

<!-- Define the container -->
<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"
    tools:context=".MainActivity">

    <!-- Sliding from top -->
    <scapps.com.library.ScSlidingPanel
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true">

            <!-- HERE THE YOUR CONTENT -->
            <!-- or you can load by setLayout method -->

    </scapps.com.library.ScSlidingPanel>

</RelativeLayout>

您可以为您的案例使用的另一个重要属性是手柄尺寸

您可以定义一个句柄并定义它的行为..因为您上面的图像使用了一个按钮..您可以取消图像并设置setToggleOnTouch()为 true 以打开/关闭触摸手柄的面板。

于 2016-06-09T02:12:29.943 回答