私の最初のフラッターアプリに取り組んでいます。アプリのメイン画面にはこの問題はありません。すべてのテキストが正しく表示されます。
しかし、私が開発しているこの新しい画面では、すべてのテキストウィジェットの下に奇妙な黄色の線/二重線があります。
なぜこれが起こっているのかについてのアイデアはありますか?
Scaffold囲むことができますTextMaterial
私の最初のフラッターアプリに取り組んでいます。アプリのメイン画面にはこの問題はありません。すべてのテキストが正しく表示されます。
しかし、私が開発しているこの新しい画面では、すべてのテキストウィジェットの下に奇妙な黄色の線/二重線があります。
なぜこれが起こっているのかについてのアイデアはありますか?
Scaffold囲むことができますTextMaterial
回答:
問題はありませんScaffoldか。
Scaffold以下のためのヘルパーですMaterialアプリケーション(AppBar、Drawerものの、その種が)。しかし、あなたは使用を強制されませんMaterial。
不足しているのは、Theme親としてのインスタンスです。
なぜそれが重要なのですか?(showDialogたとえばを使用して)モーダルを開発する場合、同じ問題に直面するためです。しかし、足場は不透明なフルスクリーンウィジェットです!そして、あなたはあなたのモーダルにそれを望まないのは明らかです。
テーマインスタンスを導入する方法はたくさんあります。Material Appでは、これは通常、Materialウィジェットをインスタンス化することによって実現されます。そして、何を推測しますか?Scaffoldあなたのために作成します。しかし、Dialogあまりにも!
Material、ヒーローの子(両側)として(または任意のテーマ)を追加すると、トランジションで修正されます。github.com/flutter/flutter/issues/30647
Scaffold単純なMaterialウィジェットのようなマテリアルテーマを提供する(通常はより良い)またはその他のコンポーネントを使用できます。
次に例を示します。いずれかを使用してください。
var text = Scaffold(body: Text("Hi"),);
var text2 = Material(child: Text("Hi"),);
回避策として、次のものを使用できます。
Text(
'Your text',
style: TextStyle(decoration: TextDecoration.none), // removes yellow line
)
テキストスタイルには、なしに設定できる装飾引数があります
Text("My Text",
style: TextStyle(
decoration: TextDecoration.none,
)
);
また、他の人が述べたように、テキストウィジェットがスキャフォールドまたはマテリアルウィジェットのツリーにある場合、装飾テキストスタイルは必要ありません。
私が遭遇する別の方法をこれらの答えに追加するだけです。
ルートウィジェットをDefaultTextStyleウィジェットでラップします。ここでは、各テキストウィジェットを変更する必要はありません。
DefaultTextStyle(
style: TextStyle(decoration: TextDecoration.none),
child : Your_RootWidget
)
それが誰かを助けることを願っています。