私の最初のフラッターアプリに取り組んでいます。アプリのメイン画面にはこの問題はありません。すべてのテキストが正しく表示されます。
しかし、私が開発しているこの新しい画面では、すべてのテキストウィジェットの下に奇妙な黄色の線/二重線があります。
なぜこれが起こっているのかについてのアイデアはありますか?
Scaffold
囲むことができますText
Material
私の最初のフラッターアプリに取り組んでいます。アプリのメイン画面にはこの問題はありません。すべてのテキストが正しく表示されます。
しかし、私が開発しているこの新しい画面では、すべてのテキストウィジェットの下に奇妙な黄色の線/二重線があります。
なぜこれが起こっているのかについてのアイデアはありますか?
Scaffold
囲むことができますText
Material
回答:
問題はありません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
)
それが誰かを助けることを願っています。