1

所以基本上,我正在使用支持库中的底部工作表视图。按下 FAB 后它会打开。

这是底部工作表视图文件:

<LinearLayout
android:id="@+id/bottomSheetView"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layout_behavior="@string/bottom_sheet_behavior"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="150dp"

>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="New"
    android:id="@+id/newLabel"
    android:layout_gravity="center_horizontal" />

<View
    android:layout_width="fill_parent"
    android:layout_height="2dp"
    android:layout_below="@+id/newLabel"
    android:background="#c0c0c0"/>

<Button
    android:id="@+id/newFileButton"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:text="File"
    android:layout_gravity="center_horizontal"
    />

<Button
    android:id="@+id/newFolderButton"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:text="Folder"
    android:layout_gravity="center_horizontal"
    />
</LinearLayout>

这是主要的活动布局:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/coordinator"
>



<android.support.v4.widget.DrawerLayout
 android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"

>

<!-- The first child in the layout is for the main Activity UI-->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    tools:context=".MainActivity"
    android:background="#ffffffff"
    >


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/cwdLabel" />

    <!--view that creates a dividing line between listview and textview -->  
    <View
        android:layout_width="fill_parent"
        android:layout_height="2dp"
        android:layout_below="@+id/cwdLabel"
        android:background="#c0c0c0"/>

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fileList"
        android:layout_below="@+id/cwdLabel"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:borderWidth="0dp"
        app:backgroundTint="@color/colorAccent"
        app:elevation="6dp"
        android:clickable="true"
        app:fabSize="normal"
        app:pressedTranslationZ="12dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_add_white_18dp"
        />




</RelativeLayout>

<!-- Side navigation drawer UI -->
<ListView
    android:id="@+id/navList"
    android:layout_width="275dp"
    android:layout_height="match_parent"
    android:layout_gravity="left|start"
    android:background="#ffeeeeee"
    />




</android.support.v4.widget.DrawerLayout>


<include layout="@layout/bottom_sheet_new"/>


</android.support.design.widget.CoordinatorLayout>

问题是,当您按下 FAB 时,底页没有打开。相反,它会在您将抽屉滑出后打开。而且,底部的纸张是透明的,这不是我设置的。

我四处寻找答案,在阅读了其他几个问题后,我认为这与抽屉布局的高度有关,但我真的不知道如何解决这个问题

4

2 回答 2

0

我遇到了同样的问题,我将 com.android.support:appcompat 更新到了最新版本,现在它可以工作了!

现在我有

  • 'com.android.support:appcompat-v7:23.4.0'
  • 'com.android.support:design:23.2.0'
于 2016-05-27T15:58:02.523 回答
0

试试这个,在初始化视图后放这个

  ViewCompat.postOnAnimation(coordinator, new Runnable() {
            @Override
            public void run() {
                ViewCompat.postInvalidateOnAnimation(coordinator);
            }
        });

希望能帮助到你

于 2016-11-29T10:59:23.993 回答