9

私は自分のアプリケーション内のいくつかの項目のテーブル/グリッドを作成しようとしていると私は、項目を分割し、項目と設定の一貫した関連性を持っている各セルの周りに境界線を持っていると思います。このアプリは、これを使用する必要があるAndroidに慣れていない人がいる可能性がある産業設定で使用されるため、できるだけ簡単にしようとしています。GridLayout、TableLayout、またはGridViewのセルの境界線ですか?

テーブル/グリッドTextViewEditTextSpinner、及びButtonを含むであろうし、また(ScrollView親を介して)スクロール可能であろう。

私はGridViewについて読んで、プログラムで項目を取得できるように見えますが、間違っていれば私を修正してください。私は何が欲しいのか、どこでどこを知っているので、これは不必要だと感じました。また、プログラムでレイアウトにアイテムを追加しようとしていないので、他のオプションを先に試してみることにしました。また、GridView documentationは、境界線が自動的に表示されているか、まったく表示することができれば、一方通行か他の通行かを言いません。

私はTableLayoutで始まり、作業する境界線以外のすべてを手に入れることができました。私はandroid:dividerを試してみましたが、それは動作しませんでした。私が持っていた考えの1つは、黒い背景と~2dpの幅と高さを持つTextViewの束を作成して、私自身の境界線を作ることでした。しかし、これは大きな浪費のように感じます。次にTableLayout documentationを読み、これを見つけました:"TableLayoutコンテナは行、列、またはセルの境界線を表示しません。"

GridLayoutを試したところ、TableLayoutと同じ結果でした。私はpaddingmarginsを試しましたが、どちらもうまくいきませんでした。また、GridLayout documentationの状態はです。「グリッドは、表示領域をセルに分割する無限に細い線のセットで構成されています。

私の質問は以下のとおりです。

  1. 私はXMLを介し私に境界線を与えるTableLayoutGridLayoutで逃したattirbuteはありますか?

  2. いいえの場合、GridViewは私に必要な行を与えますか?

  3. 私はGridViewに必要な項目をすべて追加できますか?

答えて

5

XMLを介し私に境界線を与えるだろう、私はTableLayoutやGridLayoutの中で逃したattirbuteはありますか?

ノーならば、GridViewのは、私が欲しいのラインを与えるのだろうか?

私はGridViewのに必要なすべてのperviously言及したアイテムを追加することができるだろうか?

はい、Spinnerのようなものはうまくいきますが、私は言うことができません。

最も簡単な方法は、私の頭の上から、あなたが求めるラインを与えるために、TableLayoutまたはGridLayoutの各セルを、そのセルのウィジェットを含むいくつかのコンテナにすることですあなたのラインである背景。 A ShapeDrawableは、その背景のXMLで定義することができます。これは、セルの実際の要件に基づいてきれいにサイズ変更可能です。

+0

解決策として言及した背景/ ShapeDrawableと組み合わせた 'GridLayout'を調べます。情報ありがとうございます! – TronicZomB

8

私は実際にGridLayoutビュー内android:background="#000000"を設定することにより、目的の外観を達成することができましたし、私はandroid:background="#8CDD81"(ちょうどいくつかの緑の色)を設定し、android:layout_margin="2dp"と組み合わせた子項目に、私は「グリッド」を取得することができました私が望む線。 CommonsWareのおかげで、私は解決策に変わった新しい方向に考えさせてくれました。

編集: これは予期したとおりには機能しません。あなたは子供の項目にちょうど正しい幅を得るためにRelativeLayoutによってのみ利用可能なandroid:layout_alignLeft/Rightが必要です。このアイデアを使ってまだテストしていない、child itemsRelativeLayout以内GridLayout以内。

+0

私は正しい方向に考えてくれてありがとう。私は(私の場合) 'LinearLayout'を背景色とマージンが異なるネストしたものを使って"グリッドライン "効果を達成することができました。 – ianthetechie

関連する問題