レイアウトは、レイアウトの最も一般的な種類を開発するために私たちのプロジェクトのリストです。フラッターは、我々はリストビューで商品のリストを定義することができ、垂直方向と水平方向の表示をサポートしています。表示方向を制御することにより、リストを属性することができます。次のカテゴリのリストがあります。
- 垂直リスト
- 縦書きテキストの表示リスト
- 水平方向のリスト
- ダイナミックリスト
- 行列リスト
パラメータのリスト
フラッターにおいて、カテゴリは、以下の成分リストビューオプションのパラメータを含みます。
- scrollDirection:Axis.verticalをリストAxis.horizontal水平垂直リスト
- パディング:パディング
- 解決:アセンブリを逆ソート
- 子供たち:リスト要素
基本的なリスト
インポート'パッケージ:フラッター/ material.dart' ;
ボイドメイン()=> runApp(MyAppを())。
クラスのMyAppはStatelessWidget {拡張
@Overrideの
ウィジェットのビルド(BuildContextコンテキスト){
返すMaterialApp(
:足場(ホーム
アプリケーションバー:アプリケーションバー(タイトル:テキスト( 'FlutterDemo' ))、 ボディ:HomeContent()を、 )); } }
クラスHomeContentはStatelessWidget {拡張 @Overrideの ウィジェットのビルド(BuildContextコンテキスト){ // ビルド実装:TODO リターンリストビューを( パディング:EdgeInsets.all( 10 )、 子供: <ウィジェット> [ Image.network(「のhttp://pic18.nipicを.COM / 20120204 / 8339340_144203764154_2.jpg」)、 コンテナ( 子:テキスト( '我是一个标题' 、 textAlign:TextAlign.center、 スタイル:TEXTSTYLE( のfontSize: 28 、 )、 )、 高さ:60 、 パディング:EdgeInsets.fromLTRB( 0、10、0、10 )、 )、 Image.network( "http://pic1.nipic.com/2009-02-17/200921701719614_2.jpg" )、 コンテナ( 子:テキスト( '私はタイトルだ' 、 textAlign:TextAlign.center、 スタイル:TEXTSTYLE( のfontSize: 28 、 )、 )、 高さ: 60 、 パディング:EdgeInsets.fromLTRB( 0、10、0、10 )、 )、 Image.network( "http://pic9.nipic.com/20100923/2531170_140325352643_2.jpg" )、 コンテナ( 子:テキスト( '我是一个标题' 、 textAlign:TextAlign.center、 スタイル:TEXTSTYLE( のfontSize: 28 、 )、 )、 高さ: 60 、 パディング:EdgeInsets.fromLTRB( 0、10、0、10 )、 )、 Image.network( "http://pic37.nipic.com/20140110/17563091_221827492154_2.jpg" )、 コンテナ( 子供:テキスト( 「Iタイトルは' 、 textAlign:TextAlign.center、 スタイル:TEXTSTYLE( のfontSize: 28 、 )、 )、 高さ: 60 、 パディング:EdgeInsets.fromLTRB( 0、10、0、10 )、 )、 ] )。 } }
リストビューコンポーネントでは、コンテナ、テキスト、画像、および他の多くのコンポーネントを置くが、通常ListTileコンポーネントを使用する場合、このコンポーネントは、タイトル、小見出し、写真などを設定することができ、リストを表示することができます。
StatelessWidget HomeContent {クラス拡張 @Override ウィジェット(BuildContextコンテキスト)を構築するには、{ 戻るリストビューを( パディング:EdgeInsets.all( 10 )、 子供: <ウィジェット> [ ListTile( タイトル:テキスト( 「南北Huanghuai高温期間強い豪雨を管理しますデビュー" 、 スタイル:TEXTSTYLE( のfontSize: 24 )、 )、 字幕:テキスト(『中国天気ロイターが21スタートは、北朝鮮の最初のラウンドは昨日、今年の高温を高温の広い範囲をキックオフ開発の最も繁栄舞台でした』)、 )、 ListTile( タイトル:テキスト(「ボーイング737MAXを操作する中国13社の航空会社は、請求のフィールドを持っています」、 スタイル:TEXTSTYLE( のfontSize: 24 )、)、 字幕:テキスト(「中国天気ロイターが21日に始まった、北朝鮮の最初のラウンドは今年、高温の広い範囲をキックオフ、昨日は高温の発展の最も繁栄舞台だった」)、 )、 ListTile ( タイトル:テキスト(「ボーイング737MAXを操作する中国と、中国13社の航空会社が、ステージ上の請求を持っている」)、 字幕:テキスト(「中国天気ロイター21スタート、北の最初のラウンドは今年、高温の広い範囲が昨日、キックオフは高温でした開発の最も繁栄期「)、 )、 ListTile( タイトル:テキスト(『華北Huanghuaiでの高温や雨に強いデビューを管理する』)、 字幕:テキスト(」中国天気ロイターは今年、21日に高温プルの広い範囲を北の最初のラウンドを開始しましたプロローグを開いて、昨日は「高温の発展の最も繁栄期でした、) 、) ListTile( タイトル:テキスト(「北Huanghuai高温連続性デビュー」)、 字幕:テキスト(「中国天気ロイターが21日に始まった、北朝鮮の最初のラウンドは今年、高温の広い範囲をキックオフ、昨日は高温の発展の最も繁栄舞台でした」)、 )、 ListTile( タイトル:テキスト(「華北Huanghuai高温からの強いデビューは」)、 字幕:テキスト(「中国天気ロイター21スタート、北の最初のラウンドは今年、高温の広い範囲をキックオフ、昨日は高温の最も繁栄発展しました舞台「)、 )、 ListTile( タイトル:テキスト(『北黄、懐高瑜管理する強力なデビューは』)、 字幕:テキスト(」中国天気ロイターが21日に始まった、北朝鮮の最初のラウンドは今年、高温の広い範囲が昨日、キックオフは高温でした「開発の最も繁栄期)、 )、 ListTile( タイトル:テキスト( "強力なデビューを管理華北Huanghuai南部の高温連続豪雨" )、 字幕:テキスト(「中国天気ロイターが21日に始まった、北朝鮮の最初のラウンドは今年、高温の広い範囲をキックオフ、昨日は高温の発展の最も繁栄舞台でした」)、 ) ]、 ); } }
また、上記のリストにアイコンを追加先導を使用してアイコンの前にテキストを追加し、追加アイコンの使用の後ろに後続することができます
拡張StatelessWidget HomeContent {クラス @Override ウィジェット(BuildContextコンテキスト)を作成{ 返すリストビュー( パディング:EdgeInsets.all( 10 )、 子供: <ウィジェット> [ ListTile( リード:アイコン(Icons.settings、サイズ: 40 )、 タイトル:テキストを(「強いデビューを管理北朝鮮、中国Huanghuaiで高温と雨」)、 字幕:テキスト(「中国天気ロイター21は、高温の雨を管理するための北Huanghuai強いデビューを始めました」)、 )、 ListTile( タイトル:テキスト(「北黄高温の雨」を管理するための懐の強いデビューは)、 字幕:テキスト(『中国天気ロイターが21日に始まった、黄、懐の高温雨の北の強いデビューを管理します』)、 末尾:アイコン(Icons.home)、 )、 ListTile( リード:アイコン(Icons.pages)、 タイトル:テキスト( '華北Huanghuaiでの高温や雨に強いデビューを管理する' )、 字幕:テキスト(「中国天気ロイター21は、始まった北Huanghuai高温の雨を管理するための強力なデビュー" )、 )、 ListTile( リード:アイコン(Icons.settings)、 タイトル:テキスト(『華北Huanghuaiでの高温や雨に強いデビューを管理する』)、 字幕:テキスト( "中国天気ロイターは21、北Huanghuai高温雨を管理するための強力なデビュー始まった" )、 )、 ListTile( アイコン(Icons.home、色:Colors.yellow、)、リード (テキスト:タイトル「高温雨を管理するための北黄、懐の強いデビューは」)、 字幕:テキスト(「中国天気ロイターが21始め、北Huanghuai高温雨を管理するための強力なデビュー」)、 )、 ListTile( リード:アイコン(Icons.pages) 、 タイトル:テキスト(「華北Huanghuaiで高温と雨が強いデビューを管理する」)、 字幕:テキスト(「中国天気ロイター21は、高温の雨を管理するための北Huanghuai強いデビューを始めました」)、 ) ]、 ); } }
カスタムアイコンを追加することに加えて、あなたはまた、ローカルとリモートの画像を追加することができます。
水平方向のリスト
リストビューでは、リストのレベルを表示するとき、あなたはscrollDirectionを追加する必要があり、垂直方向のリストをデフォルトでは、リストの水平または垂直リストを制御するscrollDirectionを使用することができます。Axis.horizontalを
class HomeContent extends StatelessWidget { @override Widget build(BuildContext context) { return Container( height: 180, child: ListView( scrollDirection: Axis.horizontal, children: <Widget>[ Container( width: 180.0, color: Colors.red, ), Container( width: 180.0, color: Colors.orange, child: ListView( children: <Widget>[ Image.network("http://pic25.nipic.com/20121205/10197997_003647426000_2.jpg"), Text('我是一个文本') ], ), ), Container( width: 180.0, color: Colors.blue, ), Container( width: 180.0, color: Colors.deepOrange, ), Container( width: 180.0, color: Colors.deepPurpleAccent, ), ], ), ); } }
需要注意的是,在水平列表中,列表项的高度是等于ListView组件的高度的,也就是说,为ListView组件里面的列表项添加高度是没有用的,所以,如果要控制水平列表的高度,需要在ListView组件的父组件里面设置高度,上面Container里面设置的高度就是用来控制水平列表的高度,垂直列表的宽度同理。