このxmlレイアウトを見てください。
<LinearLayout android:id="@+id/dataTableContainer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clipChildren="true">
<LinearLayout android:id="@+id/dataTable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"/>
</LinearLayout>
実行時に、「dataTable」要素には、「dataTableContainer」が表示できる幅よりも広い子が入力されます。ただし、Eclipseで2つの要素のmMeasuredWidth(またはgetWidth()の戻り値)を調べると、まったく同じであることがわかります。これは当てはまらないはずです。私の理解では、「dataTable」の子は、「wrap_content」設定を指定して、独自の幅を想定するようにプッシュする必要があります。逆に、「dataTableContainer」は、画面サイズによって制約される「fill_parent」設定を考えると、それよりも小さくする必要があります。
また、「clipChildren」をfalseに設定してみました。これは、幅がコンテナーによってクリップされた場合に備えて、結果は同じままです。テーブルとコンテナーの両方の幅が同じです。
誰かが何が起こっているのか説明できますか?
コンテキストを説明するために、私がやろうとしているのは、これらの要素のサイズを収集して、「dataTable」要素のどれだけがコンテナーの外側にあり、したがって見えないかを判断することです。これは、ユーザーがテーブル要素をドラッグできる距離を制限するために必要です。ScrollView要素はモーションをネイティブに制限しますが、LinearLayoutを使用しているため、その制限機能を複製する必要があります。