使LinearLayout可滚动并保留标题栏

时间:2016-01-23 12:51:16

标签: android android-layout

我是Android开发的新手。我希望LinearLayout可滚动但在实施已接受的解决方案here后,我应用顶部的默认深蓝色ActionBar消失了。我正在使用Empty Activity

以下是我的activity_main.xml

<?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="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

            <!-- blah blah blah -->

    </LinearLayout>
</ScrollView>

使用此代码时没有错误。

任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:2)

我终于弄明白了我的问题。缺少Actionbar的原因是因为ScrollView位于LinearLayout之外。要解决此问题,请使用其他LinearLayout打包ScrollView,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.MainActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin">

                <!-- Blah blah blah -->

        </LinearLayout>
    </ScrollView>
</LinearLayout>

感谢大家,尤其是@arvicx,感谢他们的时间! :)

我希望有这个问题的每个人都觉得这很有用。

答案 1 :(得分:0)

在res / values / styles.xml下打开styles.xml文件,并确保AppTheme父级为Theme.AppCompat.Light.DarkActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

一件事,LinearLayout的属性

android:layout_height="match_parent"

应该是

android:layout_height="wrap_content"

希望它有所帮助......告诉我它是否有效。

答案 2 :(得分:0)

您应该使用Toolbar支持类,而不是Setting Up the App Bar中所述。原因是(如链接中所述),ActionBar的行为会有所不同,具体取决于使用的Android版本。

除此之外,@ aridx是正确的,LinearLayout的布局高度应该是android:layout_height="wrap_content",因为让一个可滚动的元素与其容器的大小相同是没有意义的。

由于here

所述的原因,您可能还想添加android:fillViewport="true"

答案 3 :(得分:0)

好友,

垂直使用LinearLayout分别放置标题栏和滚动视图。