8

ScrollView内にあるRelativeLayoutの内部にあるLinearLayoutに動的に作成された複数のRelativeLayoutsを追加しようとしています。すべてのビューの合計高さが電話画面のサイズを超えると、すべてのビューが正しく表示されます。しかし、動的に追加されたビューの合計サイズが画面を満たしていない場合、最初のRelativeLayout要素のみが表示され、他の要素は画面に表示されません。私は本当に絶望的で、理由を理解していません。ここでScrollView内のRelativeLayoutにビューを動的に追加

は動的線形レイアウト内のビューを移入するためのコードです:ここでは

LinearLayout commentsLayout = (LinearLayout) findViewById(R.id.comments_layout); 

LayoutInflater inflater = (LayoutInflater) 
    this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

for(Comment c: commentsList) { 

    RelativeLayout layoutItem = (RelativeLayout) inflater.inflate(
     R.layout.list_item_comment, null, false); 

     TextView tv = (TextView) layoutItem.findViewById(R.id.textView); 
     ImageView iv = (ImageView) layoutItem.findViewById(R.id.imageView); 

     // set tv's text 
     // set iv's image and onclicklistener, nothing fancy here, everything goes well 

     commentsLayout.addView(layoutItem); 
} 

はlist_item_comment.xmlです:

<RelativeLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:id="@+id/main_layout" 
> 
... 

    <ScrollView 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true" 
    android:id="@+id/scrollView" 
    > 

     <RelativeLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/relativeContainer" 
     > 

     ... 

      <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/comments_layout" 
      /> 

     </RelativeLayout> 

    </ScrollView> 

</RelativeLayout> 

<RelativeLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/white" 
> 
    <ImageView 
    android:id="@+id/imageView" 
    android:layout_width="50dip" 
    android:layout_height="50dip" 
    android:layout_alignParentLeft="true" 
    android:layout_marginTop="10dp" 
    android:layout_marginLeft="10dp" 
    /> 

    <TextView 
    android:id="@+id/textView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_margin="10dp" 
    android:textSize="16sp" 
    android:layout_toRightOf="@id/imageView" 
    /> 
</RelativeLayout> 

そして、ここでは、この活動のためのXMLファイルです

スクリーンショット:

十分なレイアウトなし

(INCORRECT、3件のコメントを表示する必要があります)十分なレイアウトで

Incorrect one

(正しい、画面が満たされている)

correct one

I 3つのコメントをすべて最初のケースに表示する必要があります:/事前に感謝します。

+0

なぜヘッダーとフッターでListViewを使用しないのですか? –

+0

実際には、実際には通常、リストのようなものよりも多くの他のビューがあります:いくつかの画像ビュー、ボタンなどですが、これは一般的なケースではありませんが、この状況も解決する必要があります。このアクティビティの他のビューは初期化されます。何かご意見は? – ecem

答えて

0

代わりのfill_parentwrap_contentにごlist_item_comment.xml<RelativeLayout>layout_heightを変更してみてください。

さらに、あなたのアクティビティのxmlの<ScrollView>の中にもう1つの<RelativeLayout>が必要ですか。 LinearLayoutは、あなたのアクティビティのように見えるようにするのに十分です。たぶんあなたはそれを取り除くことができます。

+0

私はあなたの提案を試みたが、問題を解決していないようだ:/実際にこれは私の活動の一般的なケースではない、通常は1つの2つのimageviews、1つのボタン、いくつかのtextviewsなどがありますのでrelativelayoutは、しかし、これも事例です(それはまれですが)ので、私は解決策を見つけるべきです:/ – ecem

+0

@ecem、あなたはこれに対する解決策を見つけることができましたか? – WindsurferOak

関連する問題