nambicompany / expandable-fab Goto Github PK
View Code? Open in Web Editor NEWA highly customizable 'speed dial' FloatingActionButton implementation.
Home Page: https://nambicompany.github.io/expandable-fab/
License: MIT License
A highly customizable 'speed dial' FloatingActionButton implementation.
Home Page: https://nambicompany.github.io/expandable-fab/
License: MIT License
Hey,
I have, in my XML:
<com.nambimobile.widgets.efab.ExpandableFabLayout
android:id="@+id/fab_layout"
android:layout_width="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_margin="12dp"
android:layout_height="wrap_content">
<!-- The next 3 Views will only display in portrait orientation -->
<com.nambimobile.widgets.efab.ExpandableFab
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:efab_orientation="portrait"/>
</com.nambimobile.widgets.efab.ExpandableFabLayout>
And I'm trying, via code, to add the option like so:
/// will add the keyboard capability
private fun addKeyboardCapability(fabLayout: ExpandableFabLayout) {
val option = FabOption(fabLayout.context, Orientation.PORTRAIT)
option.label.text = "keyboard"
fabLayout.addView(option, fabLayout.childCount, null)
}
But the option isn't scaled properly on screen, probably because I'm not adding the option right or something.
I can refresh myself the ExpandableFabLayout but I thought that maybe I'm not adding the FabOption right.
Right now I can't customize the padding/margin between FabOptions
using app:layout_margin
and android:padding
attributes in XML.
Could you please change the margin of the buttons from px to dp? Alternatively, please add an option like "firstFabOptionMarginPx" for the other option buttons.
Good job! I have a question. Is there a possibility to change speed of showing up options? What if I wanted to speed up the options showing up?
Hi! When I use the fab menu with overlay and bottom nav bar, overlay not hiding the bottom nav bar and I might click on buttons in the bottom navbar. How I might hiding my bottom nav bar with an overlay?
The ExpandableFab
's efab_color
doesn't use colorAccent
despite setting it to colorSecondary
, it just uses the color black. Tested it on API 25, here's my styles.xml
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryVariant">@color/color_primary_variant</item>
<item name="colorSecondary">@color/color_secondary_variant</item>
<item name="colorSecondaryVariant">@color/color_secondary</item>
<item name="colorOnSurface">@color/color_on_surface</item>
<item name="colorPrimaryDark">?colorPrimaryVariant</item>
<item name="colorAccent">?colorSecondary</item>
</style>
My colors.xml:
<resources>
<color name="color_primary">#6200EE</color>
<color name="color_primary_variant">#3700B3</color>
<color name="color_secondary">#03DAC5</color>
<color name="color_secondary_variant">#036C62</color>
<color name="shimmer_base_0">#c2c2c2</color>
<color name="shimmer_highlight_0">#ffffff</color>
<color name="color_on_surface">#000000</color>
<color name="color_divider">#1F000000</color>
<color name="color_tinted_surface">#ffffff</color>
<color name="color_on_surface_secondary">#9e9e9e</color>
</resources>
I know I can just as easily specify my FAB's preferred color or I might just be misunderstanding something, but just thought I should let you guys know what I encountered.
I have taken 1 fab and 3 fabOptions but there is slight gape between all of them according to device screen resolution. Can u provide me the name of functionality so that I can reduce that margin or padding whatever
When using this library in project which supports RTL direction (Hebrew, Arabic languages) FAB shown correctly, but when pressing on it the menu items (FabOption) label margin is not respected as in LTR. Version 1.2.1 was used (latest one).
Please see screenshot below with FAB option which contains Hebrew text within label, margin is missing, while for LTR works as expected
I want to begin my fragment with the fab on invisible visibility mode to then call the method .show() to the fab appear with animation.
android:visibility="invisible" is not working on xml
There is no option to set a different icon (such as cross icon) when FAB is opened. We can only rotate our previous icon. Kindly add this functionality please.
It would be nice if fab_icon_tint was exposed to allow easy customization of icon color without modifying drawables.
Hi there! Thanks for the library!
Is there a way to programmatically add/remove or at least show/hide each individual FabOption?
I see it's possible to enable/disable which is good (but not what I need), while unfortunately the parent's show/hide methods do not seem to have any effect, as the view visibility seems to be ignored as well.
Hi Kelvin,
Using the following drawable for the main button the image is originaly rendered fine, though the moment it is clicked (and re-renders the image) the image is not centred any more but shifted off.
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="30dp"
android:height="30dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z" />
</vector>
It appears to happen because the dimensions do not match the viewport dimensions (30 vs 24) but that's exactly what Android Studio generated (when choosing 30
), so I wouldn't not assume the definition is invalid per se.
See how fast the FabOptions appear in the README .gif example of this other FAB menu library.
Notice how slow the expandable-fab library's FabOptions appear in the README .gif examples by comparison.
Is there an attribute that allows me to control how fast the FabOptions appear and disappear? I would like to make it faster like in the other FAB menu library.
It would be nice to have a disable function for the FAB to disable the animation and the menu of options from showing.
This is quite an edge case but it is helpful in the event that having or not having the FAB menu popup is not a fixed action and depends on something else.
I have default icon which colored by black
, it useful when open app at daylight theme. But in dark theme, whole app background turn to dark grey
, i want make the icon tint color to white. but not applied.
here my existing styles to override tint color on textview, might can be used as reference
values/styles.xml
<!-- Style for TextView drawables -->
<style name="CustomTextView" parent="Widget.MaterialComponents.TextView">
<!-- Tint color for TextView drawables -->
<item name="android:drawableTint" tools:targetApi="m">@color/black</item>
</style>
values-night/styles.xml
<!-- Style for TextView drawables -->
<style name="CustomTextView" parent="Widget.MaterialComponents.TextView">
<!-- Tint color for TextView drawables -->
<item name="android:drawableTint" tools:targetApi="m">@color/white</item>
</style>
and here how I applied the style.
values/themes.xml
<!-- Custom Style for TextView drawables -->
<item name="android:textViewStyle">@style/CustomTextView</item>
how to apply styles for expandable-fab
?
Hi Kelvin,
Is my impression wrong or is it currently not really supported to manage options dynamically in the code?
As mentioned in your example, I can use e.g. the following to enable/disable individual options upon a click
getCurrentConfiguration().getFabOptions().get(0).setFabOptionEnabled(false);
However using something like hide()
or setVisibility()
breaks the UI.
Hi there! Thanks for the beautiful view!
I'd like to make the label background transparent (to show only text), I tried to set "label_backgroundColor" to "android: transparent" (#0000), but it didn't work.
I also tried to disable the label, but when I set the "label_text" empty, there is a still black rectangle.
So, summing up, my ask is to add the ability to use transparent background for labels.
Hey! How I can change the color programmatically for fabOption: button, labelBackground, labelText?
If I changing color for an icon it normally works, but when I changing the color for the button, labelBackground, labelText and changing the text for the label, all my labels changing to a new color and text.
eFabFilterIssues.fabOptionIcon?.setTint(getColor(iconColor))
eFabFilterIssues.fabOptionColor = buttonColor
eFabFilterIssues.label.labelTextColor = textColor
eFabFilterIssues.label.labelBackgroundColor = buttonColor
eFabFilterIssues.label.labelText = "New text"
P.S. And the new button color, not that was which set.
How to load icon using url instead of res id
Getting this crash on several devices. Using the latest library version. Please let me know if any further detail is needed.
Caused by android.content.res.Resources$NotFoundException
Resource ID #0x7f070113
android.content.res.ResourcesImpl.getValueForDensity (ResourcesImpl.java:225)
androidx.core.content.ContextCompat$Api21Impl.getDrawable (ContextCompat.java:862)
com.nambimobile.widgets.efab.ExpandableFab.setOptionalProperties (ExpandableFab.java:480)
androidx.core.content.ContextCompat.getDrawable (ContextCompat.java:480)
com.nambimobile.widgets.efab.ExpandableFab. (ExpandableFab.java:73)
java.lang.reflect.Constructor.newInstance0 (Constructor.java)
android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:790)
Please add option for Extended FAB instead of current label. With different text on closed and opened states.
I am doing this...
private void removeFabOption(FabOption fabOption) { expandableFabLayout.getPortraitConfiguration().getFabOptions().remove(fabOption); }
and get this exception...
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.pezcraft.myapplication, PID: 30800 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3416) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3415) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3415) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3415) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3415) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3415) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3415) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1944) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1633) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7943) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1092) at android.view.Choreographer.doCallbacks(Choreographer.java:893) at android.view.Choreographer.doFrame(Choreographer.java:812) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1078) at android.os.Handler.handleCallback(Handler.java:907) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:216) at android.app.ActivityThread.main(ActivityThread.java:7625) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) I/Process: Sending signal. PID: 30800 SIG: 9
But what's weird is that it worked at first but when I started it a 2nd, 3rd, ... time, I got this exception.
By the way, I am calling the function inside onBillingSetupFinished Listener. It worked perfectly outside the listener.
`
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expandableFabLayout = findViewById(R.id.expandableFabLayout);
prefManager = new PrefManager(getApplicationContext());
checkBox = findViewById(R.id.checkBox);
linearLayoutHighestHeartrate = findViewById(R.id.linearLayoutHighestHeartrate);
textViewHighestHeartrate = findViewById(R.id.textViewHighestHeartrate);
//if it's still the same day, do not reset the highest heartrate of the day
if(prefManager.getHighestHeartrateDate().equals(DateConverter.toDate(new Date()))) {
highestHeartrate = prefManager.getHighestHeartrate();
}
textViewHighestHeartrate.setText(getString(R.string.textViewHighestHeartrate, highestHeartrate));
//check subscription status
billingClient = BillingClient.newBuilder(this).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingResponseCode.OK){
billingClient.queryPurchasesAsync(SkuType.SUBS, (billingResult1, queryPurchasesSubs) -> {
if (queryPurchasesSubs.size() > 0){
handlePurchases(queryPurchasesSubs);
} else {
//if no item in purchase list means no, cancelled, or paused subscription
prefManager.setPremium(false);
removeFabOption(findViewById(R.id.fabOptionPremium));
}
//set keeprunning-checkbox
if(prefManager.isPremium() && prefManager.getKeepRunning()) {
checkBox.setChecked(true);
}
billingClient.queryPurchasesAsync(SkuType.INAPP, (billingResult2, queryPurchasesOnetime) -> {
if (queryPurchasesOnetime.size() > 0){
handlePurchases(queryPurchasesOnetime);
} else {
//if no item in purchase list means no, cancelled, or paused subscription
prefManager.setPremium(false);
removeFabOption(findViewById(R.id.fabOptionPremium));
}
//set keeprunning-checkbox
if(prefManager.isPremium() && prefManager.getKeepRunning()) {
checkBox.setChecked(true);
}
});
});
//query prices for BottomSheetDialog
getSubPrice();
getOnetimePrice();
}
}
@Override
public void onBillingServiceDisconnected() {
Log.d(DEBUG, "Billing Service disconnected.");
}
});`
Any ideas, how I can use it inside the listener?
is FabOption supporting typefaces fot its text ?
Hi! How I speed up the animation?
I use:
app:efab_openingAnimationDurationMs="100" app:efab_closingAnimationDurationMs="100"
but this only works on the first opening, on the second and subsequent ones, the animation speed returns to the initial one. I tried to install both through the markup and programmatically.
I want to remove the fab option circle i want only label is there any possibility ?
I am trying to programmatically toggle the show() and hide() methods but does not work unfortunately... The setEfabColor does work tho
Hi, first of all let me congratulate you on the quality of the library and the support I see you are providing.
I would like to use the expandable fab as a container for a set of checkboxes. In that scenario I need to keep the different FabOptions visible after clicking on one of them just in case the user wants to select more than one. The 'menu' would only be closed after clicking on the ExpandableFab itself. Is such a feature implemented? Is there any workaround to that?
My app is crashing on startup when I updated my library version to 1.2.0
Please see the following logs.
compileSdkVersion = 31
minSdkVersion = 21
targetSdkVersion = 30
Fatal Exception: android.view.InflateException
Binary XML file line #150: Binary XML file line #36: Error inflating class com.nambimobile.widgets.efab.ExpandableFab
Caused by android.view.InflateException
Binary XML file line #36: Error inflating class com.nambimobile.widgets.efab.ExpandableFab
Caused by java.lang.reflect.InvocationTargetException
java.lang.reflect.Constructor.newInstance0 (Constructor.java)
androidx.databinding.DataBindingUtil.inflate (DataBindingUtil.java:95)
com.niyotail.consumer.ui.base.BaseFragment.onCreateView (BaseFragment.java:48)
androidx.fragment.app.Fragment.performCreateView (Fragment.java:2963)
androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity.java:246)
com.niyotail.consumer.ui.main.MainActivity.onStart (MainActivity.java:331)
android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1391)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)
Caused by java.lang.NoSuchMethodError
No virtual method setPadding(IIII)V in class Landroid/graphics/drawable/GradientDrawable; or its super classes (declaration of 'android.graphics.drawable.GradientDrawable' appears in /system/framework/framework.jar)
com.nambimobile.widgets.efab.Label.<init> (Label.java:274)
com.nambimobile.widgets.efab.ExpandableFab.<init> (ExpandableFab.java:243)
java.lang.reflect.Constructor.newInstance0 (Constructor.java)
androidx.databinding.DataBindingUtil.inflate (DataBindingUtil.java:95)
com.niyotail.consumer.ui.base.BaseFragment.onCreateView (BaseFragment.java:48)
androidx.fragment.app.Fragment.performCreateView (Fragment.java:2963)
androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity.java:246)
com.niyotail.consumer.ui.main.MainActivity.onStart (MainActivity.java:331)
android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1391)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)`
How can I hide fab option on the basis of conditions?
I wrote a simple demo using this library.
`<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.lailen.pixart.drawer.widget.PixArtView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.nambimobile.widgets.efab.ExpandableFabLayout
android:id="@+id/expandable_fab_layout"
android:layout_width="0dp"
android:layout_height="0dp"
app:efab_layout_fabOptionOpeningAnimationDurationMs="0"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.nambimobile.widgets.efab.Overlay
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.nambimobile.widgets.efab.ExpandableFab
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_end"
android:layout_marginBottom="@dimen/fab_bottom"
android:contentDescription="@string/tools"
app:efab_closingAnimationDurationMs="300"
app:efab_closingAnticipateTension="0"
app:efab_icon="@drawable/ic_arrow_up"
app:efab_iconAnimationRotationDeg="180"
app:efab_openingAnimationDurationMs="300" />
<com.nambimobile.widgets.efab.FabOption
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_icon="@drawable/ic_pen"
app:label_position="left"
app:label_text="@string/pen" />
<com.nambimobile.widgets.efab.FabOption
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_icon="@drawable/ic_eraser"
app:label_position="left"
app:label_text="@string/eraser" />
<com.nambimobile.widgets.efab.FabOption
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_icon="@drawable/ic_color"
app:label_position="left"
app:label_text="@string/color_palette" />
</com.nambimobile.widgets.efab.ExpandableFabLayout>
</androidx.constraintlayout.widget.ConstraintLayout>`
The result on android 12 when pressed fab option is here.
On android 7 it show shadow.
I am getting this error from firebase console, in my device it is working fine.
i am on version 1.0.2
Caused by android.view.InflateException: Binary XML file line #299 in com.supermdcare:layout/fragment_patient_details: Error inflating class com.nambimobile.widgets.efab.ExpandableFab
Caused by java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:852)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at androidx.fragment.app.Fragment.onCreateView(Fragment.java:1924)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3136)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3070)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:501)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3457)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by android.content.res.Resources$NotFoundException: Resource ID #0x7f080113
at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:246)
at android.content.res.Resources.getDrawableForDensity(Resources.java:982)
at android.content.res.Resources.getDrawable(Resources.java:922)
at android.content.Context.getDrawable(Context.java:693)
at androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:455)
at com.nambimobile.widgets.efab.ExpandableFab.<init>(ExpandableFab.kt:73)
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:852)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1124)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at androidx.fragment.app.Fragment.onCreateView(Fragment.java:1924)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3136)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3070)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:501)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3457)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Is this project compatible with the material components from google? Specifically with the BottomAppBar.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.