浮动操作按钮不会出现在kitkat中

时间:2016-04-27 07:28:44

标签: android xml android-5.0-lollipop android-4.4-kitkat floating-action-button

我创建了一个单页应用,其中浮动操作按钮用于共享页面中的内容。它在android棒棒糖中完美无缺,但当我在kitkat上运行应用程序时,它没有显示。由于唯一的交互式组件是FAB,因此除了凝视之外,用户无需做任何事情。我进行了一些搜索,发现FAB应该在kitkat上完美运行,并且只有在棒棒糖(如填充)时才会出现一些问题。但是,它在棒棒糖中效果很好。我是否必须将其更改为比棒棒糖更早版本的按钮?我的第一个问题。任何帮助表示赞赏。感谢。

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="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:fitsSystemWindows="true"
    tools:context="com.ataraxianstudios.decksharer.MainActivity"
    >


    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/share1"/>

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#016cb4">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/llMain"
        >
<Spinner
        android:id="@+id/osversions"
        android:layout_width="220dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        />
    <ImageView
        android:layout_width="60dp"
        android:layout_height="80dp"
        android:id="@+id/selectedImage"
        />

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

3 个答案:

答案 0 :(得分:1)

我也有同样的问题可能是由于材料设计作为在kitkat之后引入的材料设计,所以在某些标签或布局上存在一些问题但尝试这对我有用可能对你有用..

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout     
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="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:fitsSystemWindows="true"
tools:context="com.ataraxianstudios.decksharer.MainActivity"
>



//Replace your fab from here

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#016cb4">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:id="@+id/llMain"
    >
<Spinner
    android:id="@+id/osversions"
    android:layout_width="220dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    />
<ImageView
    android:layout_width="60dp"
    android:layout_height="80dp"
    android:id="@+id/selectedImage"
    />

</LinearLayout>
</ScrollView>


//to here:
<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@drawable/share1"/>
</android.support.design.widget.CoordinatorLayout>

答案 1 :(得分:0)

您使用的是设计支持库吗? 这是一个例子:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_input_add" />

在你的build.gradle中:

依赖{     .....     编译&#39; com.android.support:design:xx.yy.zz&#39; }

最后,在您的活动中,您可以像以下一样引用FAB:

FloatingActionButton btn = (FloatingActionButton) findViewById(R.id.fab);

希望它可以帮到你!!

答案 2 :(得分:0)

为您使用FloatingActionButton带来的BringToFront

fab = view.findViewById(R.id.fab_hours);
fab.bringToFront();