Вертикальная прокрутка двухкадрового макета или фрагмента

#android #android-layout

#Android #android-макет

Вопрос:

Я пробовал это-

     <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:isScrollContainer="true"
        android:layout_below="@ id/rootLayout"
        android:layout_centerHorizontal="true">

    <RelativeLayout
        android:id="@ id/rootLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <FrameLayout
            android:id="@ id/shop_detail_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true" />

        <FrameLayout
            android:id="@ id/item_detail_container"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" />

    </RelativeLayout>
</ScrollView>
  

Я пытаюсь получить два фрагмента с возможностью вертикальной прокрутки на одном экране. Приведенный выше код показывает только первый фрагмент, и он также не прокручивается. Любая помощь будет оценена.

Заранее благодарю вас.

Комментарии:

1. попробуйте изменить RelativeLayout на LinearLayout

Ответ №1:

В вашем случае фрагменты перекрываются. если вы хотите использовать относительный макет, используйте его, как показано ниже,

  <RelativeLayout
        android:id="@ id/rootLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <FrameLayout
            android:id="@ id/shop_detail_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true" />

        <FrameLayout
            android:layout_below="@id/shop_detail_container"
            android:id="@ id/item_detail_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </RelativeLayout>
  

или используйте линейную компоновку, как показано ниже,

 <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:id="@ id/rootLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <FrameLayout
            android:id="@ id/shop_detail_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <FrameLayout
            android:id="@ id/item_detail_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

Комментарии:

1.Эй, @Akash, спасибо тебе, чувак! Это действительно помогло мне выполнить то, что я пытался сделать. Высота отображалась неправильно, поэтому я использовал это itemDetail.getLayoutParams().height = windowHeight; shopDetail.getLayoutParams().height = windowHeight;

Ответ №2:

Попробуйте вот так, у меня это сработало

 <LinearLayout...orientation = "horizontal>

    <ScrollView>
        <FrameLayout/>
    </ScrollView>

    <ScrollView>
        <FrameLayout/>
    </ScrollView>

</LinearLayout>