我知道我很接近,但我只需要一点帮助来扩大我的布局。
我有一个 LinearLayout,包含一个 ScrollView 和一个 HorizontalScrollView,ScrollView 包含第二个 LinearLayout,其中包含一个 TextView 和一个 ImageView,HorizontalScrollView 包含第三个包含 TextView 的 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>
我遇到的问题是双重的。
HorizontalScrollView 应该在底部,而不是稍微向上,我猜是由于 ScrollView 上的高度尺寸(这应该占用除 HorizontalScrollView 保留的 25dp 之外的所有空间。
我在 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--
如果向页脚添加更多元素,这些元素会出现在 HorizontalScroll 中,其中 Footer 1 Footer 2 位于上方,并与下方的其余内容一起正确滚动。
非常感谢您花时间阅读本文,如果您需要更多信息,请告诉我。
亲切的问候