10

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

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

について読んだところ、GridViewプログラムでのみアイテムを取得できるように (思われる) ことがわかりました。間違っている場合は修正してください。欲しいアイテムがどこにあるのか分かっているので、これは不要だと感じました。また、プログラムでレイアウトにアイテムを追加しようとしたことはまだないので、最初に他のオプションを試してみることにしました。また、GridViewドキュメンテーションには、境界線が自動的に表示されるかどうか、または境界線を表示できるかどうかについては記載されていません。

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

次に を試したところ、GridLayoutと同じ結果になりましたTableLayout。私は試しpaddingてみましたがmargins、どちらもうまくいきませんでした。また、GridLayout のドキュメントには、 「グリッドは、表示領域をセルに分割する一連の無限に細い線で構成されています」と記載されています。

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

  1. 私が見逃した、TableLayoutまたはGridLayoutxmlを介して境界線を与える属性はありますか?

  2. いいえの場合、必要なGridViewセリフを提供してくれますか?

  3. 以前に言及したすべてのアイテムを に追加できGridViewますか?

4

3 に答える 3

10

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

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

于 2013-04-24T19:40:04.213 に答える
4

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

いいえ。

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

いいえ。

前述のすべての項目を GridView に追加できますか?

はい、a のようなものがどれだけうまく機能するかはわかりSpinnerません。

私の頭の上から、あなたが探している行を提供する最も簡単な方法は、の各セルを持つTableLayoutGridLayout、そのセルのウィジェットを含むコンテナになり、コンテナにあなたの行である背景を与えることです. セルのShapeDrawable実際の要件に基づいて適切にサイズ変更できる、その背景用に XML で定義できます。

于 2013-04-24T18:39:03.487 に答える