1

我知道我很接近,但我只需要一点帮助来扩大我的布局。

我有一个 LinearLayout,包含一个 ScrollView 和一个 Horizo​​ntalScrollView,ScrollView 包含第二个 LinearLayout,其中包含一个 TextView 和一个 ImageView,Horizo​​ntalScrollView 包含第三个包含 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>

我遇到的问题是双重的。

  1. Horizo​​ntalScrollView 应该在底部,而不是稍微向上,我猜是由于 ScrollView 上的高度尺寸(这应该占用除 Horizo​​ntalScrollView 保留的 25dp 之外的所有空间。

  2. 我在 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--

如果向页脚添加更多元素,这些元素会出现在 Horizo​​ntalScroll 中,其中 Footer 1 Footer 2 位于上方,并与下方的其余内容一起正确滚动。

非常感谢您花时间阅读本文,如果您需要更多信息,请告诉我。

亲切的问候

4

0 回答 0