RecyclerView作为父布局的一部分滚动而不是单独的滚动(类似于YouTube视频评论)

时间:2016-06-15 13:04:57

标签: android android-layout youtube android-recyclerview

我正在构建类似于YouTube视频布局的布局,试图让RecyclerView将视频评论作为整个布局的一部分滚动,而不是单独的滚动。我对Android编程比较陌生,无法使用它。

布局如下:

  • 在布局的顶部有一个永远不会的YouTube播放器 滚动屏幕;
  • 贝娄是其他应该滚动的观点;
  • 在布局的底部是注释部分,它是一个 RecyclerView和它应该作为整个布局的一部分滚动。

我已经阅读了关于标题的类似问题,以便将标题放在RecyclerView中,但这似乎比标题更大。

此外,“标题”部分有一些更改的视图(评级,查看次数)。

<RelativeLayout 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">

<fragment
    android:id="@+id/youtube_fragment"
    android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
    android:layout_width="match_parent"
    android:layout_height="200dp" />

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/youtube_fragment"
    android:layout_marginLeft="@dimen/activity_horizontal_margin"
    android:layout_marginRight="@dimen/activity_horizontal_margin">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/textview_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginEnd="64dp"
            android:layout_marginRight="64dp"
            android:layout_marginTop="40dp"
            android:text="Star Wars the Force Awakens"
            android:textColor="@color/colorPrimaryText"
            android:textSize="@dimen/text_size_large" />

        <TextView
            android:id="@+id/textview_view_count"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_alignTop="@+id/textview_title"
            android:text="1737\nViews"
            android:textColor="@color/colorSecondaryText"
            android:textSize="@dimen/text_size_small" />

        <ImageButton
            android:id="@+id/imagebutton_show_description"
            style="?attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_below="@id/textview_view_count"
            android:contentDescription="Image of an arrow pointing down, which when pressed shows the item's description"
            android:src="@drawable/ic_arrow_drop_down_black_24dp" />

        <TextView
            android:id="@+id/textview_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/imagebutton_show_description"
            android:layout_marginTop="12dp"
            android:textColor="@color/colorSecondaryText"
            android:textSize="@dimen/text_size_small"
            android:visibility="gone" />

        <View
            android:id="@+id/divider1"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_below="@+id/textview_description"
            android:layout_marginLeft="@dimen/divider_horizontal_margin"
            android:layout_marginRight="@dimen/divider_horizontal_margin"
            android:layout_marginTop="32dp"
            android:background="@color/colorDivider" />

        <RatingBar
            android:id="@+id/ratingbar"
            style="@style/MyRating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textview_title"
            android:layout_alignStart="@+id/textview_title"
            android:layout_below="@+id/divider1"
            android:layout_marginTop="16dp"
            android:numStars="5" />

        <TextView
            android:id="@+id/rating_value"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/ratingbar"
            android:layout_marginLeft="16dp"
            android:layout_marginStart="16dp"
            android:layout_toEndOf="@+id/ratingbar"
            android:layout_toRightOf="@+id/ratingbar"
            android:text="0"
            android:textColor="@color/colorSecondaryText"
            android:textSize="@dimen/text_size_large" />
            android:layout_below="@+id/divider1"
            android:layout_marginTop="16dp"
            android:text="FLOAT" />

        <ImageView
            android:id="@+id/imageview_user"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@+id/ratingbar"
            android:layout_marginTop="32dp"
            android:src="@drawable/singer" />

        <View
            android:id="@+id/divider2"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_below="@+id/imageview_user"
            android:layout_marginLeft="@dimen/divider_horizontal_margin"
            android:layout_marginRight="@dimen/divider_horizontal_margin"
            android:layout_marginTop="12dp"
            android:background="@color/colorDivider" />

        <TextView
            android:id="@+id/comment_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/divider2"
            android:layout_marginTop="24dp"
            android:text="Comments"
            android:textColor="@color/colorSecondaryText"
            android:textSize="@dimen/text_size_small" />

        <ImageView
            android:id="@+id/imageview_commenting_user"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@+id/textview_comment_header"
            android:layout_marginTop="24dp"
            android:src="@drawable/singer" />

        <EditText
            android:id="@+id/edittext_comment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textview_comment_header"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="32dp"
            android:layout_toEndOf="@+id/imageview_commenting_user"
            android:layout_toRightOf="@+id/imageview_commenting_user"
            android:clickable="true"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:hint="Add public comment"
            android:longClickable="false" />

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_comment"
            android:layout_marginBottom="16dp"
            android:layout_marginTop="32dp" />

    </RelativeLayout>

</android.support.v4.widget.NestedScrollView>

我后来跟随Hister在Is there an addHeaderView equivalent for RecyclerView?的回答,并添加了视频作为标题的所有内容,以及作为第二个持有者的评论。它似乎工作(虽然我仍然不确定这是不是我应该这样做),但每次我添加一个新的注释到第一个位置(在标题之后),我得到额外的空白添加到评论部分的顶部。我查看了代码,我不知道每次添加新评论时可以添加空部分。

0 个答案:

没有答案