microsoft / fluentui-android Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
When you click the action button on a Snackbar it incorrectly calls dismiss()
.
This calls dispatchDismiss(BaseCallback.DISMISS_EVENT_MANUAL)
in BaseTransientBottomBar
. Instead it should directly call dispatchDismiss(BaseCallback.DISMISS_EVENT_ACTION)
. This is how the Material Snackbar behaves.
Right now the default behavior for Bottom Drawer when the drawer content's full height is taller than the height of the drawer is:
I would like it to be (and this is the behavior of Google Bottom Drawer/Sheet):
This will greatly help in Loop Android's effort to implement Bottom Sheet inside the Workspace page editor.
Mayank Mishra
I'd like to see in the future a binding of these controls for Xamarin.Android or .NET for Android and publish it in NuGet.
Thanks.
SideRail does not use the correct background color. Looks tinted when in light mode, white in Dark Mode
The background for the SideRail respects the FluentStyle
Are you willing to submit a PR to fix? (Yes, No)
Yes
Requested priority: (Blocking, High, Normal, Low)
Normal
Products/applications affected: (if applicable)
Microsoft Loop
Seems like the first box wrapping the control is applying Material Theme
val headerPadding = token.headerPadding(sideRailInfo)
Box(//This box seems to be the issue
modifier = modifier
.fillMaxHeight()
) {
Box(
Modifier
.fillMaxHeight()
.width(borderWidth)
.background(borderColor)
.align(Alignment.CenterEnd)
)
Column(
modifier = Modifier.padding(end = borderWidth),
horizontalAlignment = Alignment.CenterHorizontally
This code can be used to workaround, but is likely not a correct fix
val headerPadding = token.headerPadding(sideRailInfo)
val railBackgroundColor = if (isSystemInDarkTheme()) backgroundDark else background
Box(
modifier = modifier
.fillMaxHeight()
.background(railBackgroundColor)//Workaround
) {
Box(
Modifier
.fillMaxHeight()
.width(borderWidth)
.background(borderColor)
.align(Alignment.CenterEnd)
)
Column(
When selecting a pill button within the PillBar, TalkBack is announcing only the name of the button and its selected / enabled state
When selecting a pill button within the PillBar, TalkBack must also announce the index of the button within the PillBar to indicate that there are multiple pills within the PillBar. Ex. "All" tab item 1 of 2, in list 2 items..etc
Are you willing to submit a PR to fix? (Yes, No)
Requested priority: (Blocking, High, Normal, Low) High (Accessibility)
Products/applications affected: (if applicable)
We are using fluentListItemVersion - 0.1.4
When navigating items in List view - when header is created with "com.microsoft.fluentui.listitem.ListSubHeaderView"
it takes two tab key taps to move to next item
It should take only single click of the tab key to move to next item
Maybe
Requested priority: (Blocking, High, Normal, Low)
Medium
See the attached video
Since Android Studio 4.0 and Android Gradle plugin 4.0 have been released recently I'd suggest removing com.jakewharton.threetenabp:threetenabp for CalendarView or DateTimePickerDialog and replacing it with java.time.*.
The benefits: I'd only have to include the pure FluentUI dependency.
Attention: Development on this library is winding down. Please consider switching to Android Gradle plugin 4.0, java.time.*, and its core library desugaring feature in the coming months.
Similar to the problems with using Joda-Time on Android, the threetenbp uses a JAR resource for loading timezone information. This is an extremely inefficient mechanism on Android.
Java 8 library desugaring in D8 and R8
Android Studio now includes support for using a number of Java 8 language APIs without requiring a minimum API level for your app.In Android Studio 4.0, the desugaring engine has been extended to be able to desugar Java language APIs. This means that you can now include standard language APIs that were available only in recent Android releases (such as java.util.streams) in apps that support older versions of Android.
The following set of APIs is supported in this release:
Sequential streams (java.util.stream)
A subset of java.time
java.lang.NullPointerException
at com.microsoft.fluentui.drawer.SideSheetBehavior$dragCallback$1.tryCaptureView(SideSheetBehavior.kt:534)
at androidx.customview.widget.ViewDragHelper.tryCaptureViewForDrag(ViewDragHelper.java:941)
at androidx.customview.widget.ViewDragHelper.shouldInterceptTouchEvent(ViewDragHelper.java:1095)
at com.microsoft.fluentui.drawer.SideSheetBehavior.onInterceptTouchEvent(SideSheetBehavior.kt:189)
at androidx.coordinatorlayout.widget.CoordinatorLayout.performEvent(CoordinatorLayout.java:548)
at androidx.coordinatorlayout.widget.CoordinatorLayout.performIntercept(CoordinatorLayout.java:503)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onInterceptTouchEvent(CoordinatorLayout.java:570)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2652)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:537)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1925)
at android.app.Dialog.dispatchTouchEvent(Dialog.java:864)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
Are you willing to submit a PR to fix? No
Requested priority: Blocking
Can't Change the text color in fluent 2 Label
Change the text color to Foreground Disabled 1
Requested priority: Blocking
On the other devices works as expected:
Items in the drawer got shifted to the right:
Works as expected on other device:
Are you willing to submit a PR to fix? (Yes, No)
Requested priority: (Blocking, High, Normal, Low)
Products/applications affected: (if applicable)
according to the readme:
We use GitHub Releases to manage our releases, including the changelog between every release. You'll find a complete list of additions, fixes, and changes on the Releases page.
but all of the releases at https://github.com/microsoft/fluentui-android/releases
just say "New Release" or "Version releases x.x.x". no detail on what has been changed.
when I tried to add the FluentUI dependency to my project, I found that the dualscreen-layout dependency didn't download properly
And the project doesn't pass the compilation properly
then, i found this issue: #5
when i add this maven source, it can be solved, and the project can also work with bulid and run
allprojects { repositories { maven { url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1" } } }
I don't want to develop for Surface-Duo devices, I just want to use FluentUI into my app
And My dependencies are just implementation 'com.microsoft.fluentui:FluentUIAndroid:$version'
But it seems to depend on the dualscreen-layout
So do I need to submit a PR to the README to tell others about this issue?
Where I'm using DrawerV2
val pageNavigatorScope = rememberCoroutineScope()
val pageNavigatorState = rememberDrawerState()
Fluent2Theme(themeMode = ThemeMode.Light) {
FluidDocEditor(
documentIdState.value,
documentTypeState.value,
documentTitleState.value,
onBackPressedCallback, onSidebarPressedCallback, viewModel = viewModel
)
Drawer(
drawerContent = {
WorkspacePageList( //<-- just a wrapper around StatelessPageListScreen
workspaceId = workspaceId,
updatePageState = updatePageState,
uriHandler = uriHandler,
logger = logger,
)
},
drawerState = pageNavigatorState,
behaviorType = BehaviorType.BOTTOM,
expandable = false,
scrimVisible = true,
)
}
Drawer Content
@Composable
private fun StatelessPageListScreen(
isRefreshing: SwipeRefreshState = SwipeRefreshState(false),
onRefresh: () -> Unit = {},
pageNodes: List<WorkspacePageNode>,
updatePageState: (documentIdParam: String, documentTypeParam: String, documentTitleParam: String) -> Unit,
invisibleCardIds: Set<String>,
collapsedCardIds: Set<String>,
workspaceName: String?,
uriHandler: UriHandler,
viewModel: WorkspacePageListViewModel = hiltViewModel()
) {
Column(Modifier.fillMaxHeight()) {
Row {
Text(
modifier = Modifier
.padding(FluentTheme.spacing.medium)
.fillMaxWidth(),
text = workspaceName ?: stringResource(R.string.screen_name_workspace),
fontSize = FluentTheme.typography.heading.fontSize,
fontWeight = FontWeight.Bold
)
// Icon() TODO need to have a plus button in the future
}
val mapFromNodeIdToIndex = mutableMapOf<String,Int>()
val listState = rememberLazyListState(initialFirstVisibleItemIndex = mapFromNodeIdToIndex[viewModel.currentOpenPage.value] ?: 0)
SwipeRefresh(state = isRefreshing, onRefresh = onRefresh) {
LazyColumn(
state = listState,
userScrollEnabled = true
) {
itemsIndexed(pageNodes) { index: Int, pageNode ->
RenderPageCardRecursive(
workspacePageNode = pageNode,
updatePageState = updatePageState,
indent = FluentTheme.spacing.default.value,
invisibleCardIds = invisibleCardIds,
collapsedCardIds = collapsedCardIds,
uriHandler = uriHandler,
)
mapFromNodeIdToIndex[pageNode.page.id] = index
}
}
}
}
}
I want the drawer to save my scroll position within the lazy list
Are you willing to submit a PR to fix? (Yes, No)
Requested priority: (Blocking, High, Normal, Low)
Products/applications affected: (if applicable)
Hi Microsoft Team,
Thanks for bringing fluent UI for android platform,
Can you please add the app-debug.apk
file
as when I check didn't find it yet, if its there please let me know by providing us some link to it.
Hope it would be love by the android devs.!!!
Seeing several reports of this crash. From this SO post, likely due to the activity being in a "finishing" state and the dialog no longer attached to the activity. https://stackoverflow.com/questions/22924825/view-not-attached-to-window-manager-crash
Below is a sample stacktrace:
android.view.WindowManagerGlobal.findViewLocked
WindowManagerGlobal.java, line 454
java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView not attached to window manager
android.view.WindowManagerGlobal.findViewLocked WindowManagerGlobal.java:454
android.view.WindowManagerGlobal.removeView WindowManagerGlobal.java:380
android.view.WindowManagerImpl.removeViewImmediate WindowManagerImpl.java:140
android.app.Dialog.dismissDialog Dialog.java:701
android.app.Dialog.dismiss Dialog.java:684
androidx.appcompat.app.AppCompatDialog.dismiss SourceFile:140
com.microsoft.fluentui.drawer.DrawerDialog.dismissDialog SourceFile:213
com.microsoft.fluentui.drawer.DrawerDialog$sheetCallback$1.onStateChanged SourceFile:49
com.google.android.material.bottomsheet.BottomSheetBehavior.setStateInternal SourceFile:1114
com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable.run SourceFile:1545
android.view.Choreographer$CallbackRecord.run Choreographer.java:911
android.view.Choreographer.doCallbacks Choreographer.java:686
android.view.Choreographer.doFrame Choreographer.java:619
android.view.Choreographer$FrameDisplayEventReceiver.run Choreographer.java:897
android.os.Handler.handleCallback Handler.java:739
android.os.Handler.dispatchMessage Handler.java:95
android.os.Looper.loop Looper.java:148
android.app.ActivityThread.main ActivityThread.java:7303
java.lang.reflect.Method.invoke Method.java
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run ZygoteInit.java:1230
com.android.internal.os.ZygoteInit.main ZygoteInit.java:1120
When I try to subclass FluentUI's Drawer class, Android Studio shows me the following warning
Inherited platform declarations clash: The following declarations have the same JVM signature (onDismiss(Landroid/content/DialogInterface;)V): fun onDismiss(dialog: DialogInterface): Unit defined in .../DrawerSubClass fun onDimiss(dialog: DialogInterface?): Unit defined in .../DrawerSubClass
I think the Kotlin nullable indicator ? causes the issue. If you inspect DialogFragment class the signature is as follows: public void onDismiss(@NonNull DialogInterface dialog)
Whereas override fun onDismiss(dialog: DialogInterface?)
is the Drawer's signature.
Side note: I'm using AndroidX
Add a list component (I'm using 01. Single-Line / 01. Standard / ⚪️ C. With Icon - Light
), select the trailing icon which should be a 24x24 square frame, replace it with a non-square component like a toggle control.
Knob is centered
Knob is on one of the edges of the track, not centered.
Are you willing to submit a PR to fix? Yes
Requested priority: Normal
Products/applications affected: Figma design library
Tooltips currently show only text. We should extend their capability to show any custom view.
Tooltips
Will help in making coachmarks(Teaching UI) in the future.
Hi Team,
We are using fluent-ui in our Android Defender app and found the issue with bitmap image that is set in IAvatar. Once the image is set in IAvatar and list of IAvatars is set in AvatarGroupView, the image doesn't reflect on UI infact a fallback image that is created using the user's initials shows up on the UI. For now we have moved to the api setAvatarImageDrawable rather than setAvatarImageBitmap, and it has unblocked us for now.
Thanks
For BottomSheet V2, I wish I could expand the bottom sheet from its initial height using the handle, if sheet content is taller than the initial height. I want the following behavior specifically:
This will help in Loop Android's effort to add a bottom sheet page switcher in the app
Mayank Mishra
It looks like this bug was caused by commit 61eac66.
The issue is on this line
Gravity.BOTTOM
fixes the issue, but causes top drawers to not behave correctly.
Open a DrawerDialog in an Activity that supports Display Cutouts. Adding this line to the theme will cause the issue:
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
DrawerDialog
has a gap below it, so it "floats" above the bottom of the screen.
DrawerDialog
is anchored to the bottom of the screen
Requested priority: Normal
Products/applications affected: Causing a production bug in Yammer
Are you willing to submit a PR to fix? (Yes)
Requested priority: High
We've been seeing jank in our list of items (with hundreds of items), and tracked it down to the trailingAccessoryContent. Removing trailingAccessoryContent makes the list scroll very fast. Our trailingAccessoryContent is also a single Fluent button, so it's really nothing super intense, and I was also able to repro with a vanilla Material button with not much in it. Interestingly, using a text view of a constant string ("hi") is also very fast.
From the Profile Trace via AS, it says the "measureAndLayout()" step is taking a long time, which is what also led me down this investigation path.
< Fluent Version 1.30.0 >
trailingAccessoryContent = { Button(onClick = { }, text = "hi") { }}
trailingAccessoryContent = { androidx.compose.material3.Button(onClick = { /*TODO*/ }) { }}
trailingAccessoryContent = { Text("hi")}
if (trailingAccessoryContent != null && textAlignment == ListItemTextAlignment.Regular) {
Box(
Modifier
.padding(
top = if (trailingAccessoryContentAlignment == Alignment.Top) padding.calculateTopPadding() else 0.dp,
bottom = if (trailingAccessoryContentAlignment == Alignment.Bottom) padding.calculateBottomPadding() else 0.dp,
end = padding.calculateEndPadding(LocalLayoutDirection.current)
)
.fillMaxHeight(),
contentAlignment = trailingAccessoryAlignment
) {
trailingAccessoryContent()
}
}
Android studio 4
https://github.com/microsoft/fluentui-android#1-using-gradle
says to use implementation 'com.microsoft.fluentui:FluentUIAndroid:$version'
Well obviously that won't work. Below it says to use the correct version. Just put in the correct version instead of having the user hunt the tags or search mvnrepository.
error
no error
Are you willing to submit a PR to fix? (Yes, No) yes
Requested priority: (Blocking, High, Normal, Low)low
Products/applications affected: (if applicable)anyone trying out your getting started section
I want to experiment with using fluentUI modules so I updated the FluentUI.demo build.gradle as shown below
fluentVersion is defined as 0.0.18
implementation "com.microsoft.fluentui:fluentui_drawer:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_listitem:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_tablayout:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_actionbar:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_bottomnavigation:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_buttons:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_calendar:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_menus:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_peoplepicker:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_persona:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_progress:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_topappbars:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_transients:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_viewpager:$fluentVersion"
implementation "com.microsoft.fluentui:fluentui_others:$fluentVersion"
But that gives the following error
Could not find com.microsoft.fluentui:fluentui_drawer:0.0.18.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/microsoft/fluentui/fluentui_drawer/0.0.18/fluentui_drawer-0.0.18.pom
- https://jcenter.bintray.com/com/microsoft/fluentui/fluentui_drawer/0.0.18/fluentui_drawer-0.0.18.pom
- https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1/com/microsoft/fluentui/fluentui_drawer/0.0.18/fluentui_drawer-0.0.18.pom
Required by:
project :FluentUI.Demo
Is there specific maven URL I need to specify for fluentUI modules?
Expected Result:
Talkback should announce about the month which appears on invoking the 'Next/Previous month' button
Ex: By double tap on Next month button, talkback should announce displayed month(Ex: December 2021)
Actual Result:
Talkback remains silent after hitting on 'Next/Previous month' button
User Impact:
Talkback users will get confused to navigate further and access other elements.
Environment Information ->
Description ->
While navigating in and out of an activity containing numerous avatar views occupies a lot of native memory (as per memory profiler provided in android studio), and even when the activity is destroyed, that memory allocated to avatar view's bitmaps does not gets garbage collected any time soon.
Steps to reproduce ->
AvatarViewActivity
or AvatarGroupViewActivity
DemoListActivity
How it can become serious issue for developers -> Apps relying heavily on AvatarView
can run into a lot of OutOfMemory
Exception
Possible solutions -> https://developer.android.com/topic/performance/graphics/manage-memory
Are you willing to submit a PR to fix? -> No
Requested priority -> High
I am using fluent ui - AvatarGroupView to display the stack of profile pictures in our app , and found that we cannot remove the ring around the Avatarimage from being displayed
this is because the when we apply avatarstyle as STACK the default implementation is having RING added
However on fluentui-iOS we are able to remove the border around the images from AvatarGroupView class
Hence we want your help in updating the style on fluentui android AvatarGroupView so that we can seamlessly integrate with our app
AvatarGroupView
No
Describe the feature that you would like added
The fluent ui controls across different platform are not exactly the same. For ex : If you look at Basic Inputs supported in Android by fluent ui
which is a lot less when compared with Web :
Is there a plan to make all controls same across different platforms ? Also can you give me an idea on whats the rough timeline for the same ?
Using Jetpack Compose to draw Fluent UI
Prob everything
No
Google announced that Jetpack Compose will be the future of the Android UI toolkit, I think there should be a Jetpack Compose version of Fluent UI
Also, Jetpack Compose is cross-platform and supports desktop. Single integration will work on multiple platforms, it is cool.
fun onDrawerDismissListener()
should be renamed to something like fun onDrawerDismissed()
It seems FluentUI ships with an older version of com.splitwise:tokenautocomplete ( 2.0.8) it prevents app from dropping use of jetifier.
There are convoluted ways to get around it, but it would be nice if Fluentui-android fixed the issue and see if switching to 3.X version of splitwise fixes the issue.
Graphs to this dependency:
+---com.microsoft.fluentui:fluentui_others:0.0.8
+---com.splitwise:tokenautocomplete:2.0.8
For reference see
For BottomSheetItem, there is a way to customize the tint of the image icon but there is no way to change the color of the accompanied text.
The equivalent on iOS, which is PopupMenuItem, has a property called "titleColor" which allows for a simple way to change the title color.
Would it be possible to add this? Or is there already a way to do this?
Thanks for your time.
While using Fluent V2Button I got the following error:
java.lang.NoSuchMethodError: 'void androidx.compose.ui.text.TextStyle. (long, long, androidx.compose.ui.text.font.FontWeight, androidx.compose.ui.text.font.FontStyle, androidx.compose.ui.text.font.FontSynthesis, androidx.compose.ui.text.font.FontFamily, java.lang.String, long, androidx.compose.ui.text.style.BaselineShift, androidx.compose.ui.text.style.TextGeometricTransform, androidx.compose.ui.text.intl.LocaleList, long, androidx.compose.ui.text.style.TextDecoration, androidx.compose.ui.graphics.Shadow, androidx.compose.ui.text.style.TextAlign, androidx.compose.ui.text.style.TextDirection, long, androidx.compose.ui.text.style.TextIndent, androidx.compose.ui.text.PlatformTextStyle, int, _layoutlib_._internal_.kotlin.jvm.internal.DefaultConstructorMarker)' at com.microsoft.fluentui.tokenized.controls.ButtonKt$Button$2.invoke(Button.kt:134) at com.microsoft.fluentui.tokenized.controls.ButtonKt$Button$2.invoke(Button.kt:57) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34) at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228) at com.microsoft.fluentui.tokenized.controls.ButtonKt.Button(Button.kt:54)
I looked at that file, but line 134 of Button.kt is calling TextStyle method which is experimental and likely is no longer supported.
Current Bottomsheet requires layout to be written by consumer end. Adding a default and configurable layout source just by applying list if Items.
Line 163 - itemLongClickListener?.onItemLongClick(commandItem, viewHolder.itemView)!!
The !! should be removed (!! is poor Kotlin practice to begin with).
06:48:25.109 E FATAL EXCEPTION: main
Process: com.microsoft.loop, PID: 1039
java.lang.NullPointerException
at com.microsoft.fluentui.contextualcommandbar.CommandItemAdapter.onBindViewHolder$lambda-10$lambda-8(CommandItemAdapter.kt:163)
at com.microsoft.fluentui.contextualcommandbar.CommandItemAdapter.$r8$lambda$cdZ99B0JC_fofd91lIU4hr8dKck(Unknown Source:0)
at com.microsoft.fluentui.contextualcommandbar.CommandItemAdapter$$ExternalSyntheticLambda0.onLongClick(Unknown Source:6)
at android.view.View.performLongClickInternal(View.java:7961)
at android.view.View.performLongClick(View.java:7919)
at android.view.View.performLongClick(View.java:7937)
at android.view.View$CheckForLongPress.run(View.java:30821)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
06:48:25.135 E Uncaught exception in app
java.lang.NullPointerException
at com.microsoft.fluentui.contextualcommandbar.CommandItemAdapter.onBindViewHolder$lambda-10$lambda-8(CommandItemAdapter.kt:163)
at com.microsoft.fluentui.contextualcommandbar.CommandItemAdapter.$r8$lambda$cdZ99B0JC_fofd91lIU4hr8dKck(Unknown Source:0)
at com.microsoft.fluentui.contextualcommandbar.CommandItemAdapter$$ExternalSyntheticLambda0.onLongClick(Unknown Source:6)
at android.view.View.performLongClickInternal(View.java:7961)
at android.view.View.performLongClick(View.java:7919)
at android.view.View.performLongClick(View.java:7937)
at android.view.View$CheckForLongPress.run(View.java:30821)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
The first letters displayed in the calendar for the days of the week are wrong for Thursday and Sunday in the Polish language.
For Thursday it is supposed to be C(Czwartek) instead of W and for Sunday it is supposed to be N(Niedziela) instead of S.
Fix: #8
The text and the custom view is visible, the dark grey background is not
Tried these ways, all the same result:
Snackbar.make(requireActivity().findViewById(android.R.id.content), message,Snackbar.LENGTH_LONG)
.setCustomView(avatarView, Snackbar.CustomViewSize.MEDIUM)
.setStyle(Snackbar.Style.REGULAR)
.show()
Snackbar.make(requireView(), message, Snackbar.LENGTH_LONG)
.setCustomView(avatarView, Snackbar.CustomViewSize.MEDIUM)
.setStyle(Snackbar.Style.REGULAR)
.show()
Snackbar.make(requireActivity().findViewById(R.id.activity_root), message,Snackbar.LENGTH_LONG)
.setCustomView(avatarView, Snackbar.CustomViewSize.MEDIUM)
.setStyle(Snackbar.Style.REGULAR)
.show()
In order to prevent naming conflicts with other libraries and apps, it is best to prefix attrs with something unique. I think fluentui
makes the most sense given that the attrs in attrs.xml
are already prefixed with it.
Files such as attrs_avatar.xml
, attrs_people_picker.xml
, attrs_avatar_group.xml
, etc. all need to have unique attrs to avoid conflicts.
No
Compiling the library into our app results in compilation errors such as:
AAPT: error: duplicate value for resource 'attr/type' with config ''.
AAPT: error: duplicate value for resource 'attr/avatarSize' with config ''.
This project depends on android.support package in it's pom.xml. But when i download the aar file and decompile it's classes.jar i found that it is using androidx's class and it's caused some problem in our project.
Could you provide a pure androidx version which's dependency in pom.xml also point to androidx
When inflating Fluent's TabLayout component via a Fragment's XML , it requires explicitly calling TabLayout.updateTemplate() to render correctly.
In an Activity or Adapter, the TabLayout component does not require explicitly calling this function, so I believe it is a bug.
See example before/after picture below:
Before calling updateTemplate() | After calling updateTemplate() |
---|---|
Talkback is not announcing roles for CCB buttons.
Repro steps:
Are you willing to submit a PR to fix? (Yes, No)
Requested priority: (Blocking, High, Normal, Low)
Products/applications affected: (if applicable)
We have DrawerDialog implementation, that extends Fluent's DrawerDialog.
I am upgrading fluent version 0.0.11 to 0.0.20
I am encountering the following error, ( Note I have stripped our internal package names)
e: .../NotificationSubscriptionDrawerDialog.kt: (18, 7): Inherited platform declarations clash: The following declarations have the same JVM signature (dispatchKeyEvent(Landroid/view/KeyEvent;)Z):
fun dispatchKeyEvent(p0: KeyEvent): Boolean defined in ........NotificationSubscriptionDrawerDialog
fun dispatchKeyEvent(event: KeyEvent?): Boolean defined in ...NotificationSubscriptionDrawerDialog
e: ...../OverflowActionDrawerDialog.kt: (27, 7): Inherited platform declarations clash: The following declarations have the same JVM signature (dispatchKeyEvent(Landroid/view/KeyEvent;)Z):
fun dispatchKeyEvent(p0: KeyEvent): Boolean defined in ......OverflowActionDrawerDialog
fun dispatchKeyEvent(event: KeyEvent?): Boolean defined in .....OverflowActionDrawerDialog
I think this is because of DrawerDialog::dispatchKeyEvent signature?
It is declared as
override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
Instead should be declared as
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
Welcome Build 2020 participants! Did you get a chance to try out the Fluent UI Android library
or watch our Build 2020 talk? If so, we want to hear your feedback! Let us know how we can make this even more useful to you moving forward.
Feel free to leave feedback on any of the following (and please keep feedback constructive and respectful):
Thank you,
The Fluent UI Android team
When unread dot is shown in V2ListItem, the entire row shifts a little to the right, which, when compared to when unread dot is not shown, becomes fairly obvious.
Ideally, presence of an unread dot should not shift the position of the rest of the elements within the ListItem.
Hello Microsoft, where can I get FluentUI icons?
Are you willing to submit a PR to fix? (Yes, No)
Requested priority: (Blocking, High, Normal, Low)
Products/applications affected: (if applicable)
Build issue when updating gradle version of Fluent UI implementation to 0.0.4
implementation 'com.microsoft.fluentui:FluentUIAndroid:0.0.4'
Grade issue disappears at 0.0.3.
minSdkVersion 22
targetSdkVersion 29
compileSdkVersion 29
buildToolsVersion "29.0.2"
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.