web-dev-qa-db-ja.com

GridLayout、TableLayout、またはGridViewのセルの境界線?

アプリ内のいくつかのアイテムのテーブル/グリッドを作成しようとしています。各セルの周囲に境界線を設定してアイテムを分割し、設定とアイテムを一貫して関連付けたいと考えています。このアプリは、Androidに慣れていない人がこれを使用する必要があるかもしれない産業環境で使用されるため、可能な限り簡単にしようとします。

テーブル/グリッドには、TextViewEditTextSpinner、およびButtonが含まれ、スクロールも可能です(ScrollView親を介して) 。

GridViewについて読んだところ、プログラムでしかアイテムを取得できないことがわかりました。間違っている場合は修正してください。欲しいものと場所がわかっているので、これは不要だと感じました。また、プログラムでレイアウトにアイテムを追加しようとしたことはまだないので、最初に他のオプションを試してみることにしました。また、 GridView document は、境界線が自動的に表示される場合、または境界線を表示できる場合は、どちらの方向にも言いません。

私はTableLayoutから始めて、境界線以外のすべてを機能させることができました。私は試した Android:divider行を取得しましたが、それは機能しませんでした。私が持っていた1つの考えは、黒い背景と〜2dpの幅/高さでTextViewsの束を作成して、独自の境界線を作成することでした。しかし、これは大きな無駄のように感じます。次に、 TableLayoutドキュメント も読んで、これを見つけました: "TableLayoutコンテナーは、行、列、またはセルの境界線を表示しません。"

次に、GridLayoutを試しましたが、TableLayoutと同じ結果になりました。 paddingmarginsを試しましたが、どちらも機能しませんでした。また、 GridLayoutドキュメント の状態: "グリッドは、表示領域をセルに分割する無限に細い線のセットで構成されています。"

私の質問は次のとおりです。

  1. TableLayoutまたはGridLayoutで見逃した、xml経由で境界線を表示する属性はありますか?

  2. いいえの場合、GridViewは私が望む行を教えてくれますか?

  3. 前述のすべてのアイテムをGridViewに追加できますか?

9
TronicZomB

TableLayoutまたはGridLayoutで見逃した、xmlを介して境界線を表示する属性はありますか?

番号。

いいえの場合、GridViewは必要な行を表示しますか?

番号。

前述のすべてのアイテムをGridViewに追加できますか?

はい、Spinnerのようなものがどれほどうまく機能するかはわかりませんが、私には言えません。

頭のてっぺんから、探している行を表示する最も簡単な方法は、TableLayoutまたはGridLayoutの各セルをそのセルのウィジェットを含むコンテナーにすることです。 、ここで、コンテナにラインである背景を与えます。 A ShapeDrawable は、その背景のXMLで定義できます。これは、セルの実際の要件に基づいて適切にサイズ変更できます。

5
CommonsWare

GridLayoutビュー内でAndroid:background="#000000"を設定し、子アイテムでAndroid:background="#8CDD81"(緑色のみ)を設定し、Android:layout_margin="2dp"と組み合わせると、実際に目的の外観を実現できました。「グリッド」を取得できました。 「私が欲しかった行。 CommonsWareに感謝しますが、解決策に変わる新しい方向性について考えさせてくれました。

編集:これは期待どおりに機能しません。子アイテムの適切な幅を取得するには、RelativeLayoutを介してのみ使用できるAndroid:layout_alignLeft/Rightが必要です。このアイデアを使用してこれをまだテストしていません。RelativeLayout内のchild itemsGridLayout内。

8
TronicZomB