Sonntag, April 5, 2020

Wie fügen Sie die Bildlauf-Fragment in

Habe ich umgesetzt Twitter SDK in einer Liste Fragment. Es hat unbegrenzte scroll-genau wie twitter. Aber wenn ich versuche, um dieses Fragment in einer scrollview layout es deaktiviert scrollview von twitter fragment.

public class TwitterFragment extends ListFragment {
    public static TwitterFragment newInstance() {
        return new TwitterFragment();
    }

Layout

    <TextView
        android:id="@id/android:empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:text="No Tweets" />

    <ListView
        android:id="@id/android:list"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="50dp"
        android:layout_weight="1"
        android:divider="#e1e8ed"
        android:dividerHeight="1dp"
        android:drawSelectorOnTop="false" />
</LinearLayout>

Nun möchte ich hinzufügen, dass dieses Fragment in einer anderen Aktivität. MainActivity hat bereits eine scroll-Ansicht. wenn ich dieses fragment gibt, die schriftrolle der twitter-fragment verschwunden ist. Ich habe versucht, verschiedene Möglichkeiten, scheiterte aber erreichen das Ziel.

Brauche ich die gleiche unbegrenzte scrollen Sie in dem kleinen fragment als gut.

Dies ist mein MainActivity Code.

<RelativeLayout 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:id="@+id/content_users_feedback"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.myapp.app.usersreviews.reviews"
    android:background="@drawable/users_bg"
    tools:showIn="@layout/activity_user_reviews">



    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:isScrollContainer="false"
        android:id="@+id/scroll_view"
        android:layout_below="@+id/sv_users"
        >


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            >


            <!-- USER DATA-->
            <include layout="@layout/users_data_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/layout_data"

                />



            <!-- TWITTER-->

            <TextView
                android:id="@+id/textView8"
                android:layout_width="match_parent"
                android:layout_height="33.62dp"
                android:background="#054F92"
                android:gravity="center_vertical"
                android:text="\@tweets"
                android:textColor="@android:color/white"
                android:textSize="16sp"
                android:paddingLeft="15dp"
                android:textStyle="normal|bold" />


                <fragment
                    android:id="@+id/cart_twitter_fragment"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="-50dp"
                    android:nestedScrollingEnabled="true"
                    class="com.myapp.app.TwitterFragment"
                    tools:layout="@layout/fragment_twitter" />


            <!-- TWITTER -->


        </LinearLayout> 

    </ScrollView>

</RelativeLayout>
  • Nur um zu bestätigen, muss der Benutzer Daten-Liste enthalten so viele Daten, die es braucht, um zu Blättern, wie gut?
  • ja, es hat eine Menge von Daten habe ich nicht Hinzugefügt, der in allen Ansichten in den Fragen
  • Mein Verständnis ist, dass die Verschachtelung ScrollViews ist im Allgemeinen nicht ratsam, mindestens im Teil, weil es schwierig sein kann, festzustellen, welche von Ihnen behandeln soll jedem gegeben swipe-Geste. Es scheint, Sie sind der Begegnung mit diesem Thema. Ich würde empfehlen, die änderung der Art, wie die Daten dargestellt. Erwägen, in die ScrollView in Ihrer Tätigkeit layout so, dass es nur Packungen die Daten der Benutzer-Liste. So haben Sie zwei scroll-layouts, aber Sie sind nicht Ineinander verschachtelt werden. Dann können Sie die Breite, Höhe, Gewicht, etc. der fragment-und scroll-Ansicht, um die gewünschten UI, und es trotzdem möglich beide zu Blättern.
InformationsquelleAutor dev90 | 2016-11-12

1 Kommentar

  1. 3

    können Sie ein ScrollView im fragment_layout.xml umschließt das gesamte layout (eine ScrollView normalerweise hat ein Kind, in diesem Fall das gesamte layout definiert in fragment_layout.xml). Die View erzeugt dann in der Regel durch das layout inflater

    fragment.java :

    View view = inflater.inflate(R.layout.fragment_layout, container, false);
    return view;

    in dem folgenden Beispiel für eine fragment_layout.xml mit einem ScrollView die ScrollView wickelt ConstraintLayout enthält zwei TextViews

    fragment_layout.xml :

    <?xml version="1.0" encoding="utf-8"?>
    
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">
    
    <android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.ralf.gpstelephony.TelephonyManagerFragment">
    
    
        <TextView
            android:id="@+id/TextView_1"
            android:layout_width="match_parent"
            android:layout_height="600dp"
            android:text="@string/string1"
            app:layout_constraintTop_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"  />
    
     <TextView
            android:id="@+id/TextView_2"
            android:layout_width="match_parent"
            android:layout_height="600dp"
            android:text="@string/string2"
            app:layout_constraintTop_toBottomOf="@id/TextView1"
            app:layout_constraintLeft_toLeftOf="@id/TextView1"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="0dp"  />
    
    </android.support.constraint.ConstraintLayout>
    
    </ScrollView>

    wenn mit dieser Methode die LayoutInflater macht die ganze Arbeit, muss man nicht haben, erstellen Sie eine Instanz der ScrollView in fragment.java (xml-basiert)

Kostenlose Online-Tests