2010-11-26 22 views
0

私は数日間この問題に苦労しています。AndroidのImageViewがListViewの行に垂直に伸びていない

私のリストビューでは、ステータスに応じて、各行に縦書きのバーを別の色で残しておくことができます。その "バー"は、ステータスの視覚的表現以外の目的はなく、クリック可能ではありません。

私は、希望の色を持つdrawableに設定された背景を持つImageViewを使用して垂直バーを実装しました。問題は、縦棒が伸びていないことです。fill_parentを指定しても、高さが1ピクセルしかありません。

行レイアウトは次のようである:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <ImageView 
     android:id="@+id/id1" 
     android:scaleType="fitXY" 
     android:layout_width="5dp" 
     android:layout_height="fill_parent" 
     android:background="@drawable/d1" /> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/id1"> 
... 

(簡略化のために目的に出て第2相対レイアウトの内容を残して)

マイ描画可能d1は次のようになります

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="@color/c1" /> 
    <corners android:topRightRadius="5dip" android:bottomLeftRadius="5dip" /> 
</shape> 

したがって、

  1. ImageViewが垂直に伸びないのはなぜですか?
  2. ImageViewを使用するよりも を実装する方がいいですか?すべてのヘルプは大歓迎

(私は は 背景色でシンプルなビューを試してみましたが、それはまったく を表示されません)。ありがとう

答えて

1

最初に、RelativeLayoutの代わりに水平のLinearLayoutを使用することもできます(これは、2人の子供しかいないので、実際にはレイアウトの複雑さをそれほど節約できません)。

LinearLayoutを変更するとこれが解決される可能性がありますが、膨張したRelativeLayoutsの高さを行として突き合わせる場合は、特定の問題に遭遇している可能性があります。このSO questionthis SO questionへの回答のコメントを参照してください。

+0

実際には、この投稿のxmlを省略するために省略したオブジェクトの上にテキストビューがあるため、相対レイアウトがありました。あなたが私に与えたリンクから投稿を読みました。私はすでにビューを膨らませる正しい方法を使用しています。しかし、Relativeレイアウトを複数のLinearLayoutsで置き換えて、それが修正されているかどうかを調べるつもりです。 –

+0

貴重なSOスレッドを私に指摘してくれてありがとうYoni。ルートRelativeLayoutをLinearLayoutに置き換えることで問題は解決されました。私はこのソリューションの大きなファンだとは確信していません。なぜなら、レイアウト階層を必要以上に複雑にしてしまうからです。しかし、それが機能するための唯一の方法かもしれません。バグ? –

関連する問題