0

こんにちは、サイズ変更可能なレイアウトがありますが、3 つの異なる線形レイアウトを同期させたいと考えています。

最初のlinearlayoutをヘッダーとして、2番目のlinearlayoutを左スクロールバーとして、3番目のlinearlayoutをコンテンツコンテナーとして、レイアウトは次のようになります

   ____________________________
  |_____|____|HEADER___|____|__|
  |     |____|____|____|____|__|
  |_____|____|____|____|____|__|
  |     |    |    Content   |  |
  |_____|____|____|____|____|__|
  | left|____|____|____|____|__|
  |_____|    |    |    |    |  |
  |     |    |____|____|____|__|
  |_____|____|____|    |____|__|
  |     |____|____|    |____|__|
  |_____|____|____|____|____|__|

ヘッダーと左スクロールはスクロール可能で、コンテンツに同期されるため、コンテンツをスクロールするとヘッダーとスクロール バーもスクロールされます。しかし、それは別の問題であり、私はそれをうまく作成しました。次に、ピンチを使用してズーム機能を追加したいので、ピンチを検出してスケールを計算するピンチビューを作成しました。しかし、今はlayoutparamsを使用してピンチから計算したスケールを使用してレイアウトのサイズを変更したいのですが、ズームしようとするとレイアウトが一致しなくなりました。

ご覧のとおり、ヘッダーのサイズと左の子のサイズは静的ですが、コンテンツの子ビューのサイズは動的であるため、一致させたいのは、コンテンツセルの幅とヘッダーセルの幅、および左のバーの高さですコンテンツの高さ

これは私のxmlファイルです

<niko.twodimensionalscroll.PinchView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pvZoomContainer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

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

        <LinearLayout
            android:id="@+id/llHeaderContainer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <LinearLayout
                android:id="@+id/llLeftBarContainer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </LinearLayout>

            <RelativeLayout
                android:id="@+id/rlContainerScrollView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:drawingCacheQuality="low" >

                <niko.twodimensionalscroll.TwoDScrollView
                    android:id="@+id/tdScrollView"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:drawingCacheQuality="low" >

                    <LinearLayout
                        android:id="@+id/llContainerSchedule"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:drawingCacheQuality="low"
                        android:orientation="horizontal" >
                    </LinearLayout>
                </niko.twodimensionalscroll.TwoDScrollView>
            </RelativeLayout>
        </LinearLayout>
    </LinearLayout>

</niko.twodimensionalscroll.PinchView>

私の質問が十分に明確であることを願っていますが、他の情報が必要な場合は、コメントで質問してください。詳細を説明します

ありがとうございました

4

1 に答える 1

0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:orientation="vertical" 
    android:background="#444444">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Header" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:background="#666666"
    android:layout_weight="1" >

    <LinearLayout
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:background="#440000">
         <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="LeftBar" />
    </LinearLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent" 
        android:layout_weight="1"
        android:background="#000099">

          <TextView
              android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentTop="true"
              android:layout_centerHorizontal="true"
              android:layout_marginTop="158dp"
              android:text="Content" />

    </RelativeLayout>

</LinearLayout>

このようなことを試してください

于 2013-04-04T08:21:33.190 に答える