如何在运行时为滑动布局设置特定高度?

时间:2014-11-15 13:05:36

标签: java android xml views

我正在构建一个使用此库的应用程序:https://github.com/umano/AndroidSlidingUpPanel创建一个面板,当用户单击列表视图中的项目时,该面板会从屏幕底部滑动。 但是,我不希望向上滑动面板占据整个屏幕。我需要在面板和动作条之间的顶部有一个间隙,正好是80dp。 我已经尝试了所有我能想到的东西(在那里放置一个带有透明背景的垫片,使用layoutParams(给出错误)等)。但似乎没有任何效果。

如果有人能给我一些关于我接下来可以尝试的建议,我会非常感激。

xml布局如下。

感谢您的时间。

科里

<com.bacon.corey.audiotimeshift.SlidingUpPanelLayout xmlns:sothree="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/sliding_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    sothree:panelHeight="68dp"
    sothree:shadowHeight="4dp"
    sothree:overlay="true">

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:padding="4dip"
        android:gravity="center_horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:orientation="vertical"
            android:padding="4dip"
            android:gravity="center_horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPager"
                android:layout_width="match_parent"
                android:layout_height="0px"
                android:layout_weight="1">

            </android.support.v4.view.ViewPager>

        </LinearLayout>

        <com.bacon.corey.audiotimeshift.FloatingActionButton
            android:id="@+id/fabbutton"
            android:layout_width="72dp"
            android:layout_height="72dp"
            android:layout_gravity="bottom|right"
            android:layout_marginBottom="16dp"
            android:layout_marginRight="16dp"
            app:colour="@color/holo_red_light"
            app:drawable="@drawable/ic_content_new"

        />

    </FrameLayout>
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center|top"
        android:textSize="16sp"
        android:id="@+id/slideUpPanel"

        android:background="@android:color/transparent"
        >

            <fragment android:name="com.bacon.corey.audiotimeshift.PlayFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/fragment_play"

                />
    </FrameLayout>

</com.bacon.corey.audiotimeshift.SlidingUpPanelLayout>

2 个答案:

答案 0 :(得分:0)

如何将SlidingUpPanelLayout包裹在另一个布局中,比如说FrameLayout并为后者添加一些好的旧paddingTop?

答案 1 :(得分:0)

我找到了一个解决方法。将窗格的背景绘制为透明并放置填充顶部,但首先必须修改库,如下所示:

https://github.com/umano/AndroidSlidingUpPanel/issues/4

希望这有助于将来的某些人:)