我需要有一个LinearLayout内部SrollView,并且LinearLayout必须有一个边距ScrollView.首先,我能想到解决这个问题的唯一方法是LinearLayout在另一个内部LinearLayout设置最后一个布局设置的边距.如果将它们放在外面,它们将无法工作LinearLayout.
例:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:fillViewport="true"
android:background="@color/layout_color_green">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/layout_color_yellow">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical"
android:background="@color/layout_color_blue">
</LinearLayout>
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么我需要这样做?
如果我只有一个LinearLayout就没有利润......
例:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:fillViewport="true"
android:background="@color/layout_color_green">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical"
android:background="@color/layout_color_blue">
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

然后,搜索一些类似的问题,我发现了一些布局,这让我想到了使用填充ScrollView代替边距LinearLayout.这也解决了我的问题,我不需要LinearLayout另一个内部.这是一个更优雅的解决方案.
不过,我想了解为什么内部的简单边距在内部时LinearLayout不起作用ScrollView.因为如果它不在里面它确实可以正常工作ScrollView.
谁知道为什么?