问题是,我希望第一个子项(我的View内容-例如图像)填充整个屏幕,并且当我单击按钮时,我希望第二个子项(实际底部栏)显示。如下图所示。如果无法通过更改AndroidSlidingUpPanel来实现此目标,我该怎么做?我以前从未使用过此类视图。非常感谢任何提示或帮助。非常感谢。
要隐藏或显示面板,您可以使用
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中,但不确定是否有最新版本。
以下库也可以实现此功能
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,以通过触摸手柄打开/关闭面板。
你可以使用AndroidSlidingUpPanel来实现,只需设置可见性:
android:visibility="GONE"
在视图的第二个子元素(面板)上使用 .showPane() 和 .hidePane() 在 SlidingUpPanelLayout 上,当您单击按钮时显示/隐藏面板。
你可以检查这个库,从屏幕的四个边缘拖动内容 https://github.com/SimonVT/android-menudrawer
你可以在这个菜单抽屉里创建自定义布局,以获得你期望的结果。