アプリ内のいくつかのアイテムのテーブル/グリッドを作成しようとしています。各セルの周囲に境界線を設定してアイテムを分割し、設定とアイテムを一貫して関連付けたいと考えています。このアプリは、Androidに慣れていない人がこれを使用する必要があるかもしれない産業環境で使用されるため、可能な限り簡単にしようとします。
テーブル/グリッドには、TextView
、EditText
、Spinner
、およびButton
が含まれ、スクロールも可能です(ScrollView
親を介して) 。
GridView
について読んだところ、プログラムでしかアイテムを取得できないことがわかりました。間違っている場合は修正してください。欲しいものと場所がわかっているので、これは不要だと感じました。また、プログラムでレイアウトにアイテムを追加しようとしたことはまだないので、最初に他のオプションを試してみることにしました。また、 GridView
document は、境界線が自動的に表示される場合、または境界線を表示できる場合は、どちらの方向にも言いません。
私はTableLayout
から始めて、境界線以外のすべてを機能させることができました。私は試した Android:divider
行を取得しましたが、それは機能しませんでした。私が持っていた1つの考えは、黒い背景と〜2dpの幅/高さでTextView
sの束を作成して、独自の境界線を作成することでした。しかし、これは大きな無駄のように感じます。次に、 TableLayoutドキュメント も読んで、これを見つけました: "TableLayoutコンテナーは、行、列、またはセルの境界線を表示しません。"
次に、GridLayout
を試しましたが、TableLayout
と同じ結果になりました。 padding
とmargins
を試しましたが、どちらも機能しませんでした。また、 GridLayoutドキュメント の状態: "グリッドは、表示領域をセルに分割する無限に細い線のセットで構成されています。"
私の質問は次のとおりです。
TableLayout
またはGridLayout
で見逃した、xml経由で境界線を表示する属性はありますか?
いいえの場合、GridView
は私が望む行を教えてくれますか?
前述のすべてのアイテムをGridView
に追加できますか?
TableLayoutまたはGridLayoutで見逃した、xmlを介して境界線を表示する属性はありますか?
番号。
いいえの場合、GridViewは必要な行を表示しますか?
番号。
前述のすべてのアイテムをGridViewに追加できますか?
はい、Spinner
のようなものがどれほどうまく機能するかはわかりませんが、私には言えません。
頭のてっぺんから、探している行を表示する最も簡単な方法は、TableLayout
またはGridLayout
の各セルをそのセルのウィジェットを含むコンテナーにすることです。 、ここで、コンテナにラインである背景を与えます。 A ShapeDrawable
は、その背景のXMLで定義できます。これは、セルの実際の要件に基づいて適切にサイズ変更できます。
GridLayout
ビュー内でAndroid:background="#000000"
を設定し、子アイテムでAndroid:background="#8CDD81"
(緑色のみ)を設定し、Android:layout_margin="2dp"
と組み合わせると、実際に目的の外観を実現できました。「グリッド」を取得できました。 「私が欲しかった行。 CommonsWareに感謝しますが、解決策に変わる新しい方向性について考えさせてくれました。
編集:これは期待どおりに機能しません。子アイテムの適切な幅を取得するには、RelativeLayout
を介してのみ使用できるAndroid:layout_alignLeft/Right
が必要です。このアイデアを使用してこれをまだテストしていません。RelativeLayout
内のchild items
GridLayout
内。