Fix NPE caused by compose components compatibility when click TextField

java.lang.NullPointerException
        at androidx.compose.ui.node.OnPositionedDispatcher.androidx.compose.ui.node.LayoutNode.dispatchOnPositionedCallbacks$ui_release(Unknown Source:46)
                                                    dispatchHierarchy
        at androidx.compose.ui.node.OnPositionedDispatcher.dispatchHierarchy(Unknown Source:89)
        at androidx.compose.ui.node.OnPositionedDispatcher.dispatchHierarchy(Unknown Source:89)
        at androidx.compose.ui.node.OnPositionedDispatcher.dispatchHierarchy(Unknown Source:89)
        at androidx.compose.ui.node.MeasureAndLayoutDelegate.androidx.compose.ui.node.OnPositionedDispatcher.dispatch(Unknown Source:61)
                                                      dispatchOnPositionedCallbacks
        at androidx.compose.ui.platform.AndroidComposeView.updatePositionCacheAndDispatch(Unknown Source:53)
        at androidx.compose.ui.platform.AndroidComposeView.onLayout(Unknown Source:10)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at androidx.compose.ui.platform.AbstractComposeView.internalOnLayout$ui_release(Unknown Source:27)
        at androidx.compose.ui.platform.AbstractComposeView.onLayout(Unknown Source:0)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
        at com.android.internal.policy.DecorView.onLayout(DecorView.java:799)
        at android.view.View.layout(View.java:23700)
        at android.view.ViewGroup.layout(ViewGroup.java:6413)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3999)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3372)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2328)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9084)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
        at android.view.Choreographer.doCallbacks(Choreographer.java:899)
        at android.view.Choreographer.doFrame(Choreographer.java:832)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.app.ActivityThread.main(ActivityThread.java:7872)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
This commit is contained in:
tarsin committed 2023-01-31 10:31:47 +08:00
1 parent 2f3b6df529
commit 28d2b92abb
2 files changed
+8 -5

No files matched your search

+1 -1
View File
@@ -127,7 +127,7 @@ dependencies {
// https://developer.android.com/jetpack/androidx/releases/compose-material3
implementation platform("androidx.compose:compose-bom:2023.01.00")
implementation "androidx.compose.material:material-icons-extended"
implementation "androidx.compose.material3:material3:1.1.0-alpha05"
implementation "androidx.compose.material3:material3"
implementation "androidx.constraintlayout:constraintlayout:2.2.0-alpha06"
implementation "androidx.coordinatorlayout:coordinatorlayout:1.2.0"
@@ -13,19 +13,19 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Menu
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.DismissDirection
import androidx.compose.material3.DismissValue
// import androidx.compose.material3.DismissDirection
// import androidx.compose.material3.DismissValue
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SwipeToDismiss
// import androidx.compose.material3.SwipeToDismiss
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberDismissState
// import androidx.compose.material3.rememberDismissState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -100,6 +100,7 @@ fun HistoryScreen(hostFragment: HistoryComposeScreenFragmentBridge) {
key = { item -> item.gid }
) { info ->
info?.let {
/*
val dismissState = rememberDismissState(
confirmValueChange = {
if (it == DismissValue.DismissedToStart)
@@ -141,6 +142,8 @@ fun HistoryScreen(hostFragment: HistoryComposeScreenFragmentBridge) {
},
directions = setOf(DismissDirection.EndToStart)
)
*/
}
}
}