私は近くにいることを知っていますが、レイアウトを膨らませるのに少し助けが必要です.
ScrollView と HorizontalScrollView を含む LinearLayout があり、ScrollView には TextView と ImageView を含む 2 番目の LinearLayout が含まれ、HorizontalScrollView には TextView を含む 3 番目の LinearLayout が含まれます。
XML は次のとおりです。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLinearLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView
android:id="@+id/scroll1"
android:layout_width="fill_parent"
android:layout_height="442dp"
android:layout_weight="1" >
<LinearLayout
android:id="@+id/contentLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/contentText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<ImageView
android:id="@+id/image_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</LinearLayout>
</ScrollView>
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="25dp"
android:layout_gravity="bottom">"
<LinearLayout
android:id="@+id/footerLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="bottom"
android:orientation="horizontal" >
<TextView
android:id="@+id/footer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="bottom"
android:paddingLeft="5dp"
android:paddingRight="5dp" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
私が抱えている問題は2つあります。
HorizontalScrollView は下にあるはずですが、少し上にあります。ScrollView の高さの寸法が原因で推測しています (これは、HorizontalScrollView によって予約された 25 dp を除くすべてのスペースを占有するはずです)。
現在コードを持っているScrollViews内でLinearLayoutsを膨らませるのに問題があります:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout layoutContent; LinearLayout lin = new LinearLayout(this); TextView content = null; //Content for (int i =0; i<6; i++) { layoutContent = (LinearLayout)inflater.inflate(R.layout.details_list, null); content = (TextView)layoutContent.findViewById(R.id.contentText); content.setText("MyContent" + String.valueOf(i)); lin.addView(layoutContent); } this.setContentView(lin); //Footer lin = (LinearLayout) findViewById(R.id.footerLayout); content = null; for (int i =0; i<2; i++) { layoutContent = (LinearLayout)inflater.inflate(R.layout.details_list, null); content = (TextView)layoutContent.findViewById(R.id.footer); content.setText("Footer "+String.valueOf(i)); lin.addView(layoutContent); }
これは私に問題を引き起こします: コンテンツ レイアウトが lin = new LinearLayout(this); として宣言されているためです。これは私のレイアウトファイルのものを使用していません。たとえば、レイアウトは次のようになります
MyContent0 MyContent1MyContent2MyC
onte
nt3
Footer 0 Footer 1
フッター項目の数を増やすと、MyContent1... が画面の右側から押し出されたように見えます。変更すると
lin = (LinearLayout) findViewById(R.id.contentLayout);
、行を削除する必要this.setContentView(lin);
がありますが、そうするとレイアウトは次のようになります。
TextView
MyContent0
--Lots of blank lines--
Footer 0 Footer 1
MyContent1
--Lots of blank lines--
MyContent2
--Lots of blank lines--
MyContent3
--Lots of blank lines--
MyContent4
--Lots of blank lines--
MyContent5
--Lots of blank lines--
フッターにさらに要素を追加すると、これらの要素は、フッター 1 フッター 2 が上にある HorizontalScroll に表示され、下の残りのコンテンツとともに正しくスクロールされます。
時間を割いてこれを読んでくれてありがとう。さらに情報が必要な場合はお知らせください。
敬具