scrollView android里面的静态按钮

时间:2018-05-07 18:58:17

标签: android xml scrollview

我正在制作一个xml布局文件,由3部分组成:

  • 第1部分:关于某个地方的一些信息和图像。

  • 第2部分:两个水平Button s。

  • 第3部分:RecyclerView部分人的评论。

这是我的布局文件:

<ScrollView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:name="com.example.abdo.foodproject.OneItemFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.abdo.foodproject.OneItemFragment"
tools:layout="@layout/activity_item"
>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/oneitem_background_theme"
    android:orientation="vertical"
    android:weightSum="13"
    >
    <LinearLayout>
    (...) <!--part 1-->
    </LinearLayout>
    <LinearLayout  <!--part 2-->
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/review_list"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="@string/reviews"
            android:background="@color/colorPrimaryDark"

            />
        <Button
            android:id="@+id/bestMeal_list"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimaryLight"
            android:text="@string/best_meal"
            />
    </LinearLayout>


     <android.support.v7.widget.RecyclerView  <!--part 3-->
        android:id="@+id/recyclerViewItem"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>

</LinearLayout>

我想将按钮固定在我的屏幕上,位于窗口的顶部,而不会从滚动中丢失视图。

有没有人知道怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用CoordinatorLayout来实现此类影响。 CoordinatorLayout有2个孩子,其中一个孩子也有2个孩子

  1. AppBarLayout:是一个垂直方向的线性布局。滚动完成后,它的内容可以根据&#34; app:layout_collapseMode&#34; 属性消失或固定。

    • 1.1。 CollapsingToolbarLayout:你可以把你的&#34;第1部分&#34;使用 app在这个地方查看:layout_collapseMode =&#34; parallax&#34; 在消失时视差。

    • 1.2。固定视图。 LinearLayout:随意更换你的&#34;第2部分&#34;视图。滚动完成后,此部分将固定。

  2. 可滚动视图:您的示例中是RecyclerView。

  3. 最终代码应该类似于:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            app:elevation="0dp">
    
            <android.support.design.widget.CollapsingToolbarLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:contentScrim="@android:color/transparent"
                app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
    
                <!--part 1-->
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_collapseMode="parallax">
                </LinearLayout>
            </android.support.design.widget.CollapsingToolbarLayout>
    
            <!--part 2-->
            <LinearLayout 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weight_sum="2">
                <Button
                    android:id="@+id/review_list"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:text="@string/reviews"
                    android:background="@color/colorPrimaryDark"
                    />
                <Button
                    android:id="@+id/bestMeal_list"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:background="@color/colorPrimaryLight"
                    android:text="@string/best_meal"
                    />
            </LinearLayout>
        </android.support.design.widget.AppBarLayout>
    
        <!--part 3-->
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewItem"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
    </android.support.design.widget.CoordinatorLayout>