Reputation: 21
I’m encountering a persistent white screen issue when running a Flutter app in floating window mode on a Xiaomi Redmi
K80 Pro with HyperOS 2. The problem occurs specifically when applying size constraints to the app’s root widget (
e.g., using SizedBox
with MediaQuery
-derived dimensions). Without constraints, the app displays correctly, but
adding any width/height logic triggers the white screen.
Code Example:
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: SizedBox(
width: 100,
height: 100,
child: Center(
child: Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
}
Observed Behavior:
VRI.reportNextDraw
and Surface
errors, suggesting rendering issues during window resizing (see
key log snippets below).Log Excerpts:
E/BinderMonitor( 7845): err open binder_delay errno=13
W/ample.untitled6( 7845): type=1400 audit(0.0:248188): avc: denied { write } for name="binder_delay" dev="proc" ino=4026533067 scontext=u:r:untrusted_app:s0:c11,c258,c512,c768 tcontext=u:object_r:proc_mi_log:s0 tclass=file permissive=0 app=com.example.untitled6
D/VRI[MainActivity]( 7845): vri.reportNextDraw android.view.ViewRootImpl.handleResized:2768 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$W.resized:12716 android.app.servertransaction.WindowStateResizeItem.execute:64 android.app.servertransaction.WindowStateTransactionItem.execute:59
D/VRI[MainActivity]( 7845): vri.reportNextDraw android.view.ViewRootImpl.performTraversals:4936 android.view.ViewRootImpl.doTraversal:3547 android.view.ViewRootImpl$TraversalRunnable.run:11558 android.view.Choreographer$CallbackRecord.run:1747 android.view.Choreographer$CallbackRecord.run:1756
D/VRI[MainActivity]( 7845): vri.Setup new sync=wmsSync-VRI[MainActivity]#5
D/VRI[MainActivity]( 7845): vri.reportDrawFinished
E/Surface ( 7845): freeAllBuffers: 1 buffers were freed while being dequeued!
I/HandWritingStubImpl( 7845): refreshLastKeyboardType: 1
I/HandWritingStubImpl( 7845): getCurrentKeyboardType: 1
I/ample.untitled6( 7845): ProcessProfilingInfo new_methods=19 is saved saved_to_disk=1 resolve_classes_delay=8000
D/VRI[MainActivity]( 7845): vri.reportNextDraw android.view.ViewRootImpl.handleResized:2768 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$W.resized:12716 android.app.servertransaction.WindowStateResizeItem.execute:64 android.app.servertransaction.WindowStateTransactionItem.execute:59
D/VRI[MainActivity]( 7845): vri.Setup new sync=wmsSync-VRI[MainActivity]#7
D/VRI[MainActivity]( 7845): vri.reportDrawFinished
D/VRI[MainActivity]( 7845): vri.reportNextDraw android.view.ViewRootImpl.handleResized:2768 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$W.resized:12716 android.app.servertransaction.WindowStateResizeItem.execute:64 android.app.servertransaction.WindowStateTransactionItem.execute:59
D/VRI[MainActivity]( 7845): vri.Setup new sync=wmsSync-VRI[MainActivity]#9
D/VRI[MainActivity]( 7845): vri.reportDrawFinished
I/HandWritingStubImpl( 7845): refreshLastKeyboardType: 1
I/HandWritingStubImpl( 7845): getCurrentKeyboardType: 1
D/VRI[MainActivity]( 7845): vri.reportNextDraw android.view.ViewRootImpl.handleResized:2768 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$W.resized:12716 android.app.servertransaction.WindowStateResizeItem.execute:64 android.app.servertransaction.WindowStateTransactionItem.execute:59
D/VRI[MainActivity]( 7845): vri.reportNextDraw android.view.ViewRootImpl.performTraversals:4936 android.view.ViewRootImpl.doTraversal:3547 android.view.ViewRootImpl$TraversalRunnable.run:11558 android.view.Choreographer$CallbackRecord.run:1747 android.view.Choreographer$CallbackRecord.run:1756
D/VRI[MainActivity]( 7845): vri.Setup new sync=wmsSync-VRI[MainActivity]#12
D/VRI[MainActivity]( 7845): vri.reportDrawFinished
E/Surface ( 7845): freeAllBuffers: 1 buffers were freed while being dequeued!
Device/Environment:
Question:
Additional Context:
Troubleshooting Attempts:
width: 300
) instead of MediaQuery
—same result.debugRepaintRainbowEnabled
—no improvement.Upvotes: 2
Views: 23