LinearLayout を含む ScrollView で構成される Fragment に問題があります。LinearLayout の背景が白で、色付きの背景をスクロールする紙のように見える効果を作成しようとしています。私がこれを達成しようとしている方法は、ScrollView にフラグメントの全スペースを占有させてから、内部の LinearLayout でandroid:layout_margin="16dp"
「紙」の周りにスペースを作成することです。
このように、ScrollView のスクロール バーは色付きの背景領域に表示され、上部のマージンはコンテンツと共にスクロールし、下部のマージンは最後に到達したときにのみスクロールします。
残念ながら、この構成では、ScrollView は最後までスクロールせず、実際には下部のごくわずかなテキストが切り取られます。ScrollView は、垂直方向のスクロール距離で子のマージンを考慮していないと思われます。これを解決するために、問題を解決する FrameLayout で LinearLayout をラップしましたが、余分なようです。この不要なコンテナを削除する方法についての指針をいただければ幸いです。
注: android:padding="16dp"
ScrollView を設定して余白を削除しても、スクロール位置に関係なく、4 つの端すべてに連続してパディングが表示されるため、目的の効果は得られません。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:context=".ArticleFragment" >
<!-- This FrameLayout exists purely to force the outer ScrollView to respect
the margins of the LinearLayout -->
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"
android:layout_margin="16dp"
android:background="@color/page_background" >
<TextView
android:id="@+id/article_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textIsSelectable="true" />
<TextView
android:id="@+id/article_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true" />
</LinearLayout>
</FrameLayout>
</ScrollView>