どのようにして列内のすべての列を整列させることができるのだろうかと思っていました。私はListView
を使用しています。そこに私のゲームの薬のリストが表示されます。列は、各行ごとに異なるサイズです。私は、各列がリストの最後まで同じ幅を持ちますが、全体的に同じ幅ではないことを確認したいと思います。リストビューですべての列を整列する
あなたが写真からもわかるように、列が整列されていません。私は、私が望むものをさらにはっきりさせるために線を描きます。また、ボタンが他の列に近づいていることがわかります。絵の上にある矢印を使って、ボタンが行の最後まで配置されていることを明確にしたかったのです。
私はあなたのことを読んでいた
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.20</item>
:あなたは、私が設定見ることができるように
<!-- List style for the drug sell list -->
<style name="traderY.List">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_alignParentLeft">true</item>
<item name="android:layout_alignParentTop">true</item>
</style>
<!-- Header style for quantity column -->
<style name="traderY.HeaderQuantityText">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.15</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:padding">4dip</item>
<item name="android:layout_margin">4dip</item>
<item name="android:textColor">#EDEFF0</item>
</style>
<!-- Header style for cost column -->
<style name="traderY.HeaderCostText">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.20</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:padding">4dip</item>
<item name="android:layout_margin">4dip</item>
<item name="android:textColor">#EDEFF0</item>
</style>
<!-- Header style for name column -->
<style name="traderY.HeaderNameText">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.45</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:padding">4dip</item>
<item name="android:layout_margin">4dip</item>
<item name="android:textColor">#EDEFF0</item>
</style>
<!-- Row style for quantity column -->
<style name="traderY.QuantityListText">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.15</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:padding">4dip</item>
<item name="android:layout_margin">4dip</item>
<item name="android:textColor">#000000</item>
</style>
<!-- Row style for cost column -->
<style name="traderY.CostListText">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.20</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:padding">4dip</item>
<item name="android:layout_margin">4dip</item>
<item name="android:textColor">#000000</item>
</style>
<!-- Row style for name column -->
<style name="traderY.NameListText">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.45</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:padding">4dip</item>
<item name="android:layout_margin">4dip</item>
<item name="android:textColor">#000000</item>
</style>
<!-- Row style for button column -->
<style name="traderY.ListButton" parent="@android:style/Widget.Button">
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">0.20</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">15dip</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:gravity">center</item>
<item name="android:shadowColor">#000000</item>
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">0.6</item>
<item name="android:background">@drawable/custom_btn_black_pearl</item>
<item name="android:padding">4dip</item>
</style>
または私はそれらの二つのアイテムを使用して列幅を設定しよう:
私の実装では、次のスタイルを使用しています重量を使って幅を設定できます。私は基本的にパーセンテージを設定するのと同じ値を使用しました。私が正しく理解している場合、weight
の値は他のコンポーネント間の比率を表します。スタックオーバーフローの問題の解決策としてこれを見つけました。私はいくつかのチュートリアルでそれを見つけました。私が見つけたチュートリアルの1つはhereです。
さらに多くの光を共有するために、リストビューを含むフラグメントから始まる、すべてのコンポーネントのレイアウトもここにあります。
フラグメントレイアウトここ
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<TextView
android:id="@+id/money"
style="@style/traderY.TextCenter" />
<TextView
android:id="@+id/location"
style="@style/traderY.TextCenter" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/junkie_icon"/>
<ListView
android:id="@+id/drug_list"
style="@style/traderY.List"
android:layout_weight="1"/>
<TableRow
style="@style/traderY.ButtonRow">
<Button
android:id="@+id/nothing"
style="@style/traderY.ButtonCenter"
android:text="@string/exit"/>
</TableRow>
</LinearLayout>
ヘッダレイアウトです。あなたが見ることができるようにそれのためのヘッダーを表示する必要がないので、私は、ボタンの最後の列を省略:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#000000">
<TextView
android:text="@string/header_quantity"
style="@style/traderY.HeaderQuantityText" />
<TextView
android:text="@string/header_cost"
style="@style/traderY.HeaderCostText" />
<TextView
android:text="@string/header_name"
style="@style/traderY.HeaderNameText" />
</LinearLayout>
そして、ここでは、私が使用して、各行のレイアウトです:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/drug_quantity"
style="@style/traderY.QuantityListText" />
<TextView
android:id="@+id/drug_cost"
style="@style/traderY.CostListText" />
<TextView
android:id="@+id/drug_name"
style="@style/traderY.NameListText" />
<Button
android:id="@+id/drug_sell_btn"
android:text="@string/sell_drugs_action"
style="@style/traderY.ListButton"/>
</LinearLayout>
もの私が使用するスタイル/レイアウトです。私はコード内のこれらのプロパティを変更しません。だから問題は自分のXMLファイルにしかない。
ここで間違っていることは誰にも分かりますか?多分私の調査は間違っていて、私はそれをすることはできません。私はこの問題を解決するために何か助けやコメントを感謝します。これが不可能な場合は、私に知らせてください。
私はあなたの答えを受け入れられた答えとしてマークすることをお勧めします。コミュニティがそれの利益を得ることができるように:) –
私はそれを行うことができる前に、私は2日間待たなければなりません。しかし、それは私の計画だった。 –
問題ありません。クール。 :) –