1

私は近くにいることを知っていますが、レイアウトを膨らませるのに少し助けが必要です.

ScrollView と Horizo​​ntalScrollView を含む LinearLayout があり、ScrollView には TextView と ImageView を含む 2 番目の LinearLayout が含まれ、Horizo​​ntalScrollView には 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つあります。

  1. Horizo​​ntalScrollView は下にあるはずですが、少し上にあります。ScrollView の高さの寸法が原因で推測しています (これは、Horizo​​ntalScrollView によって予約された 25 dp を除くすべてのスペースを占有するはずです)。

  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--

フッターにさらに要素を追加すると、これらの要素は、フッター 1 フッター 2 が上にある Horizo​​ntalScroll に表示され、下の残りのコンテンツとともに正しくスクロールされます。

時間を割いてこれを読んでくれてありがとう。さらに情報が必要な場合はお知らせください。

敬具

4

0 に答える 0