【发布时间】:2015-12-20 09:06:01
【问题描述】:
我的 LinearLayout 中有一个 FAB (FloatingActionButton)。我希望将 LinearLayout 隐藏,即首先将可见性设置为消失,然后单击菜单按钮时它应该可见。一切正常,但 FAB 在隐藏之前保持可见一段时间。我尝试了从改变 FAB 的可见性到使用 hide() 和 show() 的所有方法,但没有任何效果。
我得到了以下链接,但由于某种原因它们对我不起作用。
- FloatingActionButton always visible
- Gone FAB becames visible for a while
- FloatingActionButton doesn't hide
我的activity_main.xml:
<android.support.v4.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.wolfarts.checklist2.MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="0dp"
android:paddingTop="24dp"
android:theme="@style/MyToolbarStyle">
<Spinner
android:id="@+id/spinner_nav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Base.TextAppearance.AppCompat.Title"
android:visibility="gone"/>
</android.support.v7.widget.Toolbar>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/emptyStateView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:src="@drawable/emptystatebag"
android:layout_marginTop="-30dp"
android:layout_gravity = "center"
android:layout_height="170dp"
android:layout_width="300dp"/>
<TextView
android:paddingTop="8dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity = "center"
android:text="Nothing here. Try Adding Something."
android:textColor="#B8B8B8"
android:textSize="18sp"/>
</LinearLayout>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/maincontainer"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/toolbarContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="72dp"
android:paddingStart="72dp"
android:paddingRight="18dp"
android:paddingEnd="18dp"
android:paddingBottom="80dp"
android:visibility="gone"
android:elevation="4dp"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true">
<android.support.design.widget.TextInputLayout
android:id="@+id/username_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="#B3FFFFFF"
android:layout_gravity="center_vertical">
<EditText
android:id="@+id/taskName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="35sp"
android:maxLines="1"
android:hint="Item Name"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>
<com.wolfarts.checklist2.CustomRecyclerView
android:id="@+id/taskListRecyclerView"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:paddingLeft="16dp"
android:clickable="true"
android:src="@drawable/ic_done_white_24dp"
app:layout_anchor="@id/toolbarContent"
app:layout_anchorGravity="bottom|right|end"
app:backgroundTint="@color/orange"
android:visibility="gone"
app:elevation="8dp"/>
</android.support.design.widget.CoordinatorLayout>
</FrameLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/navDrawer"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="left|start">
<ListView
android:id="@+id/navList"
android:paddingTop="24dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#ffeeeeee"/>
</LinearLayout>
这是 FAB 中的错误吗?
【问题讨论】:
-
可能是您正在更改它再次动态检查您的代码,通常
android:visibility="gone"有效 -
@HemantShori 我希望它在按下按钮时动态更改其可见性,即 onClick。
-
你是什么意思你已经尝试了从改变 FAB 的可见性到使用 hide() 和 show() 的所有方法,但没有任何效果。使用应该使用
fab.setVisibility(View.VISIBLE);,或者如果你想在后台执行它覆盖方法并调用它 -
@HemantShori 我试过 fab.setVisibility(View.GONE);和 fab.hide();使其隐藏以及 fab.setVisibility(View.VISIBLE);和 fab.show();使其可见。我的问题是它在几分之一秒内保持可见,然后自行隐藏。我希望它在我启动应用程序时被隐藏,并且仅在我触发事件时才可见,即按钮单击
标签: android floating-action-button