MCPcopy Index your code
hub / github.com/bowyer-app/FabTransitionLayout

github.com/bowyer-app/FabTransitionLayout @v0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.0 ↗ · + Follow
124 symbols 317 edges 13 files 11 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

FabTransitionLayout

Android Arsenal

Provides the Floating Action Button Transition as specified in the Material Design Guide in a simple library.

It is strongly inspired by fab-toolbar

bottomsheet toolbar CoordinatorLayout
bottomsheet bottomsheet CoordinatorLayout

Usage

build.gradle

repositories {
    jcenter()
}

dependencies {
    compile 'com.bowyer.app:fabtransitionlayout:0.4.0@aar'
}

Layout XML

BottomSheetLayout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:tools="http://schemas.android.com/tools"
             xmlns:app="http://schemas.android.com/apk/res-auto"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
        >

    <com.github.ksoichiro.android.observablescrollview.ObservableListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />

    <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_marginBottom="32dp"
            android:layout_marginRight="32dp"
            android:src="https://github.com/bowyer-app/FabTransitionLayout/raw/v0.4.0/@drawable/ic_add_white_24dp"
            app:borderWidth="0dp"
            app:fabSize="normal"
            app:rippleColor="@color/primary"
            />

    <com.bowyer.app.fabtransitionlayout.BottomSheetLayout
            android:id="@+id/bottom_sheet"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            app:ft_container_gravity="center"
            app:ft_color="@color/primary">

        <ListView
                android:id="@+id/list_menu"
                android:background="@color/primary"
                android:divider="@null"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
    </com.bowyer.app.fabtransitionlayout.BottomSheetLayout>

</FrameLayout>

FooterLayout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:tools="http://schemas.android.com/tools"
             xmlns:app="http://schemas.android.com/apk/res-auto"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             tools:context=".MainActivity">

    <com.github.ksoichiro.android.observablescrollview.ObservableListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />

    <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_marginBottom="32dp"
            android:layout_marginRight="32dp"
            android:src="https://github.com/bowyer-app/FabTransitionLayout/raw/v0.4.0/@drawable/ic_add_white_24dp"
            app:borderWidth="0dp"
            app:fabSize="normal"
            app:rippleColor="@color/primary"
            />

    <com.bowyer.app.fabtransitionlayout.FooterLayout
            android:id="@+id/fabtoolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            app:ft_container_gravity="center"
            app:ft_color="@color/primary">

    </com.bowyer.app.fabtransitionlayout.FooterLayout>
</FrameLayout>

Set up

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initListView();
        //set floating button to FabToolbar
        mBottomSheetLayout.setFab(mFab);
    }

Show Hide

//expand FabToolbar
mBottomSheetLayout.expandFab();

//if mBottomSheetLayout is expand,mBottomSheetLayout contract. else fab slide out.
mBottomSheetLayout.slideOutFab();

//fab slide in
mBottomSheetLayout.slideInFab();


Credits

This library use following libraries. * CircularReveal

Code Style

Follow SquareAndroid.

Feature

  • [ ] A floating action button transforming into a single sheet of material

License

Copyright (c) 2015 Bowyer
Released under the MIT license
http://opensource.org/licenses/mit-license.php

Core symbols most depended-on inside this repo

setVisibility
called by 28
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/ViewUtils.java
centerX
called by 24
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/ViewUtils.java
getFabSizePx
called by 12
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/FooterLayout.java
getRelativeTop
called by 8
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/ViewUtils.java
canAddViewToContainer
called by 4
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/FooterLayout.java
contractFab
called by 4
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/FooterLayout.java
canAddViewToContainer
called by 4
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/BottomSheetLayout.java
getFabSizePx
called by 4
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/BottomSheetLayout.java

Shape

Method 108
Class 15
Enum 1

Languages

Java100%

Modules by API surface

fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/BottomSheetLayout.java26 symbols
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/FooterLayout.java25 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/FabToolBarDemoActivity.java11 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/CoordinatorLayoutActivity.java10 symbols
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/FooterBehavior.java8 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/model/BottomSheet.java8 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/adapter/BottomSheetAdapter.java8 symbols
fabtransitionlayout/src/main/java/com/bowyer/app/fabtransitionlayout/ViewUtils.java7 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/adapter/RecyclerViewAdapter.java7 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/MainActivity.java5 symbols
demo/src/main/java/com/bowyer/fabtransitionlayout/demo/BottomSheetDemoActivity.java5 symbols
fabtransitionlayout/src/androidTest/java/com/bowyer/fabtransitionlayout/ApplicationTest.java2 symbols

For agents

$ claude mcp add FabTransitionLayout \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact