作者:lucifer | 来源:互联网 | 2023-09-25 16:20
我有一个带有三个标签的活动(HomeActivity).每个选项卡都有其自己的片段,在一个片段中,我具有带有3个浮动动作按钮的浮动动作菜单.这是XML:
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:id="@+id/main_home_layout"
android:orientation="vertical">
android:id="@+id/textView"
android:layout_
android:layout_
android:layout_centerInParent="true"
android:text="Recent"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:id="@+id/fabMenu"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_margin="16dp"
android:OnClick="fabMenuClicked"
app:fab_addButtOnColorNormal="?attr/colorAccent"
app:fab_addButtOnColorPressed="#00b1c7"
app:fab_label>
android:id="@+id/singleChatFab"
android:layout_
android:layout_
app:fab_colorNormal="?attr/colorAccent"
app:fab_colorPressed="#00b1c7"
app:fab_size="mini"
app:fab_title="New chat"/>
android:id="@+id/groupChatFab"
android:layout_
android:layout_
app:fab_colorNormal="?attr/colorAccent"
app:fab_colorPressed="#00b1c7"
app:fab_size="mini"
app:fab_title="New group chat"/>
android:id="@+id/serviceChatFab"
android:layout_
android:layout_
app:fab_colorNormal="?attr/colorAccent"
app:fab_colorPressed="#00b1c7"
app:fab_size="mini"
app:fab_title="Request a service"/>
单击可扩展,并且效果很好.我要做的是单击“浮动操作菜单”时,更改保存它的布局的不透明度(ID为main_home_layout的相对布局).
但是我的点击方法从未输入.我尝试将其放在保存该片段的Activity中,但没有用.我试着放到片段中,还是什么也没有.我在调试模式下运行应用程序,从未发现断点.
这是单击方法:
public void fabMenuClicked(View v) {
final FloatingActionsMenu floatingActiOnsMenu= (FloatingActionsMenu) v;
findViewById(R.id.main_home_layout).getBackground().setAlpha(128);
}
有谁知道为什么它不起作用.谢谢.
解决方法:
尝试使用setOnFloatingActionsMenuUpdateListener,根据需要在覆盖的onMenuExpanded和onMenuCollapsed方法中更改颜色,例如:
FloatingActionsMenu floatingMenu = v.findViewById(R.id.fabMenu);
((FloatingActionsMenu)floatingMenu).setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() {
@Override
public void onMenuExpanded() {
findViewById(R.id.main_home_layout).getBackground().setAlpha(128); //change opacity here
}
@Override
public void onMenuCollapsed() {
findViewById(R.id.main_home_layout).getBackground().setAlpha(64); //change opacity here
}
});