gridviewのスペースを取り除く方法

このことは少しずつ頭を下げています。私はそれを解決できないようです。

私はいくつかのビットマップを表示するグリッドビューを持っています。アダプタ(iv.setPadding(5、5、5、5);)を使用して画像ビューを塗りつぶすときに、すべての画像面に5dpのパディングを追加しますが、どういうわけか、それぞれの上端と下端にスペースが追加されます私のgridviewの項目。

私はこれがすでに 数少ない ここで、いくつかは答えを受け入れても、私は上記のURLに記載されているように答えを提出しようとすると、私は上と下で同じ余分なスペースを使い続けます。

今日これを行うには他の方法はありますか?

私のコードのいくつかは次のとおりです:

Main.xml

<?xml version="1.0" encoding="utf-8"?>

grid_item.xml

<?xml version="1.0" encoding="utf-8"?>

main.xmlのlistselector属性に以下を追加しようとしました。

  • @null
  • @ drawable/solid_white
  • @android:id/empty

上と下に余分なスペースがあるように見えます(両側のスペースは上に説明したように追加しています):

enter image description here

それらの血まみれのスペースを取り除く方法に関する他のアイデアは、私のグリッドビューは同じ間隔を持っているので削除?

前もって感謝します、

12

4 答え

私にとっては、アダプタクラスに imageview.setAdjustViewBounds(true); を設定することで問題を解決しました。

正方形の画像の幅は自動的に変更されたようですが、Gridviewは元の高さをそのまま使用していました。境界を調整することにより、両方の寸法が自動的にリサイズされ、デフォルトストレッチモードが有効になっていてもすべての項目が滑らかに表示されました。

23
追加された
これは正解でなければなりません。他の推奨事項は、水平方向の間隔では機能しません。
追加された 著者 irudyak,
天才を驚かせる、ありがとう。
追加された 著者 gbhall,
これは正方形のビュー(イメージ)で、次のように機能します。View.setPadding(0、0、0、0); xml:android:verticalSpacing = "0dp" android:horizo​​ntalSpacing = "0dp" android:stretchMode = "none"
追加された 著者 TouchBoarder,

それ以外の設定がされていない場合、GridViewはさまざまな方法で物事を引き伸ばして生成するはずのレイアウトを上書きします。列幅とグリッド項目のサイズを定義してレイアウトを完全に制御したい場合は、GridViewの stretchMode プロパティを "none" をクリックします。



また、あなたはあなたのGridViewの幅で親のを埋めるです。私は余分な充填を追加しない限り、幅のコンテンツをラップする必要があると思います。 5dpのパディングをどこに追加していますか?各ビットマップの周りまたはグリッドビューの周りに?私はそれを見ない。

あなたはおそらく高さを満たす必要があります。 (以下では幅と高さの一部を "wrap_content"で置き換えることができます)

だから、あなたのために

<?xml version="1.0" encoding="utf-8"?>

また、列の間隔や幅が必要なのかどうかはわかりません(これはwrap_contentの代わりにdpです)。GridViewでこれらが必要ないかもしれません。わかりません:

    android:columnWidth="YYYdp"
    android:horizontalSpacing="0dp"

5dpのパディングを持つImageViews:

<?xml version="1.0" encoding="utf-8"?>

8
追加された
@マーカス - 私は同様の問題を抱えていた。ちょっと微調整が必​​要でしたが、stretchModeは必ず「なし」にするか、Androidでグリッドアイテムのサイズを変更してください。 -------------- columnWidthsを "Xdp"に明示的に設定してみてください。また、グリッドビュー全体の幅を計算し、layout_widthを「Ydp」に明示的に設定してみてください。
追加された 著者 Peter Ajtai,
@Marcos - それはグラフィカルレイアウトでも消えますか?グラフィックレイアウトを使用してプロパティを変更して遊んでいると非常に便利です。さまざまな幅と高さで遊んでください。グリッドビューの幅を明示的に定義し、グリッドビューの高さを塗りつぶして、イメージビューの幅と高さを明示的に定義します。あなたがそのように表示されるようになると、そこからそれを微調整することができます。
追加された 著者 Peter Ajtai,
それによって、私のgridviewは何も表示しなくなった
追加された 著者 Marcos Placona,
私はアダプタを介してグリッドビューを塗りつぶすときに私の画像に追加します。私はコンテンツをラップしようとしましたが、アンドロイドを使用するときは:stretchMode = "none"、すべてが表示されなくなります
追加された 著者 Marcos Placona,
何とかアンドロイド:stretchModeはまだそれを消滅させます。それを取り除くと、それは戻ってきますが、依然として不要なスペースがあります:-(
追加された 著者 Marcos Placona,
何も表示しない!
追加された 著者 Thinsky,

ステップ1:

android:stretchMode="none"
android:numColumns="auto_fit"
android:gravity="center"

ステップ2: あなたの計算された幅と高さを返すonMeasure

1
追加された

私はこれを歩く簡単な方法を見つけました。 android:layout_marginRightGridView に追加してください。

1
追加された