抱歉英语不好。我用Toolbar创建了一个app界面素材设计,TabHost一切正常。然后我想在一个标签中添加FloatingActionsMenu。所以我使用了:http://com.getbase.floatingactionbutton.FloatingActionsMenu库。当我使用FloatingActionsMenu时,其他包含的选项卡现在已经消失。这是我的完整xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:elevation="4dp"
android:theme="@style/MyCustomToolBarTheme"
android:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
fab:titleTextAppearance="@style/Toolbar.TitleText" >
</android.support.v7.widget.Toolbar>
<TabHost
android:id="@+id/tabHost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:tabStripEnabled="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:showDividers="none"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="2dp"
android:background="@color/gray">
<LinearLayout
android:id="@+id/tab1_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<!--The Other Contain in Tab one Container-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is Tab One Container"
android:id="@+id/textView"
android:textSize="17sp" />
</LinearLayout>
<FrameLayout
android:id="@+id/menu_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white_overlay">
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/fab_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
fab:fab_addButtonColorNormal="@color/accent"
fab:fab_addButtonColorPressed="@color/accent_dark"
fab:fab_addButtonPlusIconColor="@color/white"
fab:fab_addButtonStrokeVisible="false"
fab:fab_labelStyle="@style/menu_labels_style"
fab:fab_labelsPosition="left">
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_event"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/accent"
fab:fab_colorPressed="@color/accent_dark"
fab:fab_plusIconColor="@color/white"
fab:fab_icon="@android:drawable/ic_dialog_email"
fab:fab_size="mini"
fab:fab_title="Emails" />
</com.getbase.floatingactionbutton.FloatingActionsMenu>
</FrameLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="2dp"
android:gravity="center"
android:background="@color/gray">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is Tab Two Container"
android:id="@+id/textView1"
android:textSize="17sp" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
`
提前致谢。请帮帮我。
答案 0 :(得分:0)
我想你可能意味着FloatingMenu在切换选项卡上消失了 如果那是你要求的那就是因为使用选项卡内的浮动按钮而不是选项卡布局所有
只是为了不让自己与代码混淆创建一个带有基本活动的应用程序,这意味着它已经有一个浮动按钮,如Android Studio中的这个太阳穴
并将FloatingButton替换为FloatingMenu 并将标签内容放在content_main.xml中 这是所有布局选项卡中的FloatingButton应该是的形式,这就是我的建议,我希望它可以帮助你
答案 1 :(得分:0)
谢谢大家。我通过onCreate方法中的以下代码解决了它
final FrameLayout frameLayout = (FrameLayout) findViewById(R.id.menu_frame_layout);
frameLayout.getBackground().setAlpha(0);
final FloatingActionsMenu fabMenu = (FloatingActionsMenu) findViewById(R.id.fab_menu);
fabMenu.setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() {
@Override
public void onMenuExpanded() {
frameLayout.getBackground().setAlpha(130);
frameLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
fabMenu.collapse();
return true;
}
});
}
@Override
public void onMenuCollapsed() {
frameLayout.getBackground().setAlpha(0);
frameLayout.setOnTouchListener(null);
}
});