【问题标题】:floating action button backward compatibility issue浮动操作按钮向后兼容性问题
【发布时间】:2015-12-25 20:57:07
【问题描述】:

所以我正在制作一个带有几个浮动操作按钮的应用程序,虽然在我的情况下它们在视图中是固定的,但我喜欢它们的外观

无论如何,对于较旧的 API(例如果冻豆),它似乎在显示为附加图像时存在问题,但它是奇巧的,后来它完美地显示出来,有什么想法可以解决这个问题吗?

xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ly.bsagar.libyanaguid.services">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/fab_margin"
        android:layout_marginRight="@dimen/fab_margin"
        android:layout_weight="1"
        android:gravity="center">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center"
            android:text="@string/internetService"
            android:textSize="@dimen/text_size_large" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_public_black_24dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_marginLeft="@dimen/fab_margin"
        android:layout_marginRight="@dimen/fab_margin"
        android:layout_weight="2"
        android:gravity="center">

        <android.support.design.widget.FloatingActionButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="ActInternet"
            android:src="@drawable/ic_done_black_24dp" />

        <android.support.design.widget.FloatingActionButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="DisInternet"
            android:src="@drawable/ic_clear_black_24dp" />

        <android.support.design.widget.FloatingActionButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="getSetting"
            android:src="@drawable/ic_settings_black_24dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginRight="@dimen/activity_horizontal_margin"
        android:layout_marginTop="@dimen/fab_margin"
        android:layout_weight="1"
        android:gravity="center">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center"
            android:text="@string/callWaiting"
            android:textSize="@dimen/text_size_large" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_phone_paused_black_24dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginLeft="@dimen/fab_margin"
        android:layout_marginRight="@dimen/fab_margin"
        android:layout_weight="2"
        android:gravity="center">

        <android.support.design.widget.FloatingActionButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="actwaiting"
            android:src="@drawable/ic_done_black_24dp" />

        <android.support.design.widget.FloatingActionButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="deactwaiting"
            android:src="@drawable/ic_clear_black_24dp" />

        <android.support.design.widget.FloatingActionButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="statuswaiting"
            android:src="@drawable/ic_error_outline_black_24dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/fab_margin"
        android:layout_marginRight="@dimen/fab_margin"
        android:layout_weight="1"
        android:gravity="center">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center"
            android:text="@string/missedCallNotification"
            android:textSize="@dimen/text_size_medium" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:src="@drawable/ic_phone_missed_black_24dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginLeft="@dimen/fab_margin"
        android:layout_marginRight="@dimen/fab_margin"
        android:layout_weight="2"
        android:gravity="center">

        <android.support.design.widget.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:background="@color/colorAccent"
            android:onClick="actmissed"
            android:src="@drawable/ic_done_black_24dp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <android.support.design.widget.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="@dimen/fab_margin"
            android:layout_weight="1"
            android:onClick="deactmissed"
            android:src="@drawable/ic_clear_black_24dp" />

    </LinearLayout>

</LinearLayout>

bad view

good view (ignore that square, I was testing something

提前致谢

【问题讨论】:

  • 在 FAB 上将高度设置为 wrap_content。卸下重量。

标签: android xml floating-action-button android-4.1-jelly-bean


【解决方案1】:

好吧,我不知道您遇到了什么问题,但可能是此视图的向后兼容性问题。

你可以试试这个额外的免费Floating Action Button library for Android 它有许多自定义项,需要 SDK 9 及更高版本

Full Demo Video

如果可能的话,还可以在build.gradle 文件中降级(如果您使用的是较新版本)Google 的设计库

compile 'com.android.support:design:22.2.0'

您可以在这里找到更多解决方案:

How to create a floating action button (FAB) in android, using AppCompat v21?

Floating Action Button for lower version

希望对你有帮助

【讨论】:

  • 我正在尝试了解材料设计的最佳实践。我有一个可以运行的应用程序,但某些材料组件不适用于运行各种 API 的不同设备。有你推荐的教程/资源吗?
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
相关资源
最近更新 更多