我正在构建类似于YouTube视频布局的布局,试图让RecyclerView将视频评论作为整个布局的一部分滚动,而不是单独的滚动。我对Android编程比较陌生,无法使用它。
布局如下:
我已经阅读了关于标题的类似问题,以便将标题放在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?的回答,并添加了视频作为标题的所有内容,以及作为第二个持有者的评论。它似乎工作(虽然我仍然不确定这是不是我应该这样做),但每次我添加一个新的注释到第一个位置(在标题之后),我得到额外的空白添加到评论部分的顶部。我查看了代码,我不知道每次添加新评论时可以添加空部分。