我实施了一个Floating Action Button
,如果在一个Fragment
中按下,则打开另外两个。但是,在应用程序中我有2个片段。因此,如果我滑过另一个界面,并在第一个界面中打开它,它将继续只显示两个" fab child",而Floating Action Button
" parent"褪色,怎么样。我该如何解决这个问题?
FAB:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabShow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="17dp"
android:layout_marginBottom="110dp"
android:elevation="6dp"
android:src="@drawable/ic_done_white_24dp"
android:tint="@color/colorTextFloatingBtn"
android:visibility="invisible"
app:backgroundTint="@color/colorBackgroundAccept"
android:scaleType="center"
app:fabSize="mini" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabShow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginRight="17dp"
android:layout_marginBottom="65dp"
android:elevation="6dp"
android:src="@drawable/ic_done_white_24dp"
android:tint="@color/colorTextFloatingBtn"
android:visibility="invisible"
app:backgroundTint="@color/colorBackgroundAccept"
android:scaleType="center"
app:fabSize="mini" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_marginRight="@dimen/fab_margin"
android:layout_marginBottom="16dp"
android:elevation="6dp"
android:src="@drawable/ic_add_white_24dp"
android:tint="@color/colorTextFloatingBtn"
android:scaleType="center"
app:fabSize="mini" />
MainActivity:
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
fab.hide();
fabShow1.hide();
fabShow2.hide();
break;
case 1:
fab.show();
break;
default:
fab.hide();
fabShow1.hide();
fabShow2.hide();
break;
}
}
答案 0 :(得分:0)
我认为没有view.hide()
这样的方法。您应该设置视图的可见性。
尝试以下
switch (position) {
case 0:
fab.setVisibility(View.GONE);
fabShow1.setVisibility(View.GONE);
fabShow2.setVisibility(View.GONE);
break;
case 1:
fab.setVisibility(View.VISIBLE);
break;
default:
fab.setVisibility(View.GONE);
fabShow1.setVisibility(View.GONE);
fabShow2.setVisibility(View.GONE);
break;
}