安卓滑动上弹视图

4
当我点击一个按钮时,我需要做一个滑动视图,它应该从屏幕底部向上滑动。它必须显示在屏幕底部,我需要将其滑/拖动到屏幕中央。如下图所示。 几乎像"umano"的AndroidSlidingUpPanel,您可以在这里找到:
问题是,我希望第一个子项(我的View内容-例如图像)填充整个屏幕,并且当我单击按钮时,我希望第二个子项(实际底部栏)显示。如下图所示。如果无法通过更改AndroidSlidingUpPanel来实现此目标,我该怎么做?我以前从未使用过此类视图。非常感谢任何提示或帮助。非常感谢。

可能是复制Google地图底部面板向上滑动的重复问题。 - reixa
这不是重复的。我希望当我点击按钮时,我的视图出现,而不是已经存在。 - stanete
请查看 https://github.com/Ali-Rezaei/SlidingDrawer,它可以通过几行代码从任何一侧滑动,并且比slidingUpPanel更简单易用。 - Ali
最好的方法是使用Android底部工作表来实现这一点。 - Md Imran Choudhury
4个回答

2

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

showPanel()

方法。

要隐藏它,请尝试以下操作:

SlidingUpPanelLayout slidingPanel =(SlidingUpPanelLayout)findViewById(R.id.sliding_panel); slidingPanel.hidePanel();

要使其出现,请尝试以下操作:

SlidingUpPanelLayout slidingPanel =(SlidingUpPanelLayout)findViewById(R.id.sliding_panel); slidingPanel.showPanel();

这仅适用于AndroidSlidingUpPanel的v2.0版本(https://github.com/umano/AndroidSlidingUpPanel)。据我所知,现在已包含在android support library v13中,但不确定是否有最新版本。


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,以通过触摸手柄打开/关闭面板。


0

你可以使用AndroidSlidingUpPanel来实现,只需设置可见性:

android:visibility="GONE"

在视图的第二个子元素(面板)上使用 .showPane() 和 .hidePane() 在 SlidingUpPanelLayout 上,当您单击按钮时显示/隐藏面板。


有没有办法将第二个子元素设置为填充整个屏幕?因为按照您所说的方法操作,当我在SlidingUpPanelLayout上使用.showPane()时,第二个子元素会移动。 - stanete
“moves”是什么意思?2号子元素显示在屏幕上吗?使用 'expandPane()'扩展面板并填充屏幕。 - Francesco
对不起,我是说第一个子元素。我想让第一个子元素填满屏幕并保持不变。当我调用showPan()并且第二个子元素出现时,它会移动第一个子元素。 - stanete

0

这让我在项目导入方面遇到了很多问题。所以还有其他想法吗? - stanete
什么问题? - Abhishek Agarwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接