2017-07-25 69 views
0

我試圖在ScrollView中使用ListView。目標是像其他應用程序一樣工作,例如instagram和facebook。下面的代碼將是java中的代碼,以及他在xml中的代碼。如果我語法混亂,我很抱歉,因爲我還在學習英語。如何在ScrollView中使用ListView

這裏是我的代碼:

slImages = (SliderLayout)rootView.findViewById(R.id.slImageResource); 

     FSocietySlideView slideView = new FSocietySlideView(getContext()); 
     slideView.image(R.mipmap.ic_launcher); 
     slideView.setOnSliderClickListener(HomeFragment.this); 
     slideView.description("None"); 
     slImages.addSlider(slideView); 

     final ArrayList<FSociety> news = new ArrayList<>(); 

     news.add(new FSociety(getResources(), "None", "None", R.mipmap.ic_launcher)); 
     news.add(new FSociety(getResources(), "None", "None", R.mipmap.ic_launcher)); 
     news.add(new FSociety(getResources(), "None", "None", R.mipmap.ic_launcher)); 
     news.add(new FSociety(getResources(), "None", "None", R.mipmap.ic_launcher)); 
     news.add(new FSociety(getResources(), "None", "None", R.mipmap.ic_launcher)); 
     news.add(new FSociety(getResources(), "None", "None", R.mipmap.ic_launcher)); 

     FSocietyAdapter adapter = new FSocietyAdapter(getActivity(),news); 

     ListView listView = (ListView)rootView.findViewById(R.id.list_test); 

     listView.setAdapter(adapter); 

     return rootView; 
    } 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#212121" 
    android:orientation="vertical"> 


    <com.daimajia.slider.library.SliderLayout 
     android:id="@+id/slImageResource" 
     android:layout_width="match_parent" 
     android:layout_height="205dp" 
     android:layout_marginTop="0dp" 
     android:scaleType="fitXY" /> 

    <com.daimajia.slider.library.Indicators.PagerIndicator 
     android:id="@+id/custom_indicator" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="-4dp" 
     android:gravity="center" 
     custom:selected_color="#FFFFFF" 
     custom:selected_height="6dp" 
     custom:selected_padding_left="6dp" 
     custom:selected_padding_right="6dp" 
     custom:selected_width="6dp" 
     custom:shape="oval" 
     custom:unselected_color="#55333333" 
     custom:unselected_height="6dp" 
     custom:unselected_padding_left="2dp" 
     custom:unselected_padding_right="2dp" 
     custom:unselected_width="6dp" /> 

    <ListView 
     android:id="@+id/list_test" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"></ListView> 


</LinearLayout> 
+0

類似的問題已經在這裏回答:https://stackoverflow.com/questions/18367522/android-list-view-inside-a-scroll-view – Subash

+0

我已經嘗試過,但沒有工作 –

回答

0

你不應該把一個ListView或RecyclerView在滾動型。這會導致性能問題。 ListViews等自動處理滾動。

只能將ScrollView用於溢出屏幕的多個文本瀏覽。

+0

工作正常在NestedScrollView –

+0

它可能正常工作,但根據Android開發指南,這是一個不好的做法。它會導致滯後和其他問題。對於小數據集,它應該沒問題,但它是多餘的,因爲ListView自動處理滾動。 –

+0

垂直ScrollView中的水平RecyclerView怎麼樣?這不是一種常見的模式嗎? –

0

我不明白你爲什麼要在scrollview中放置listview?如果我看facebook應用程序,那麼在scrollview中沒有listview。如果我設計的Facebook應用程序,我會做這樣的事情。

<LinearLayout> <-- Bottom layout 
    <LinearLayout> 
     //There are buttons for news, friends, etc 
    </LinearLayout> 
    <RecyclerView> 
     //There is your facebook news, which can scroll 
     //In recyclerview create custom item for showing one news 
    </RecyclerView> 
</LinearLayout> 

您可以在Google上找到RecyclerView教程。

相關問題