2016-10-16 78 views
0

我已經把兩個listview在scrollview中,但我有一個問題,當我把項目在第一個listview第二個listview將滾動。我希望整個區域都可以滾動,而不是滾動視圖,我該怎麼做?第一個scrollview是listViewEventiAggiunti第二個listViewEventi。ScrollView中的兩個ListView

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

    <LinearLayout android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:orientation="vertical" 
     android:id="@+id/activity_lista__eventi" 
     android:paddingBottom="@dimen/padBottom" 
     android:paddingLeft="@dimen/padLeft" 
     android:paddingRight="@dimen/padRight" 
     android:paddingTop="@dimen/padTop" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     tools:context="com.example.fra87.eudroid.activity_class.Lista_Eventi"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="50dp" 
      android:orientation="vertical"> 
      <SearchView 
       android:layout_width="match_parent" 
       android:layout_height="50dp" 
       android:queryHint="Evento" 
       android:id="@+id/cercaEvento"/> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:id="@+id/linearLayoutEventi"> 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="50dp" 
       android:hint="Nome Evento" 
       android:textSize="22dip" 
       android:id="@+id/editText_nome_evento_composto"/> 

      <ListView 
       android:id="@+id/listViewEventiAggiunti" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="15dp" /> 



     <View 
      android:layout_width="match_parent" 
      android:layout_height="5dp" 
      android:id="@+id/separatore_liste" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:background="@android:color/darker_gray"/> 



      <ListView 
       android:id="@+id/listViewEventi" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/cercaEvento" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="15dp" /> 

     </LinearLayout> 

    </LinearLayout> 
</ScrollView> 

我想要滾動整個區域,我不想滾動列表視圖,當我在列表視圖把項目面積增加,我滾動整個區域是可能的嗎?

+0

我不明白你的意思。您希望每個ListView都可以單獨滾動,或者讓它們顯示其所有項目,然後ScrollView變得可滾動? –

+0

爲什麼你想要做這個實現將有助於分享一個屏幕截圖來建議其他方式,因爲這是一個非常糟糕的做法 –

+0

@shadoWalker我想顯示所有的項目,然後滾動查看變得可滾動。我怎樣做? – Fra87

回答

0

您可以使用multiple type item for listview和簡化您的佈局變成這個樣子

<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:id="@+id/activity_lista__eventi" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:paddingBottom="@dimen/padBottom" 
       android:paddingLeft="@dimen/padLeft" 
       android:paddingRight="@dimen/padRight" 
       android:paddingTop="@dimen/padTop" 
       tools:context="com.example.fra87.eudroid.activity_class.Lista_Eventi" 
    > 

    <SearchView 
     android:id="@+id/cercaEvento" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:queryHint="Evento" 
     /> 

    <EditText 
     android:id="@+id/editText_nome_evento_composto" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_below="@+id/cercaEvento" 
     android:hint="Nome Evento" 
     android:textSize="22dip" 
     /> 

    <View 
     android:id="@+id/separatore_liste" 
     android:layout_width="match_parent" 
     android:layout_height="5dp" 
     android:layout_below="@+id/editText_nome_evento_composto" 
     android:layout_marginBottom="10dp" 
     android:layout_marginTop="10dp" 
     android:background="@android:color/darker_gray" 
     /> 

    <ListView 
     android:id="@+id/listViewEventi" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/separatore_liste" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="15dp" 
     /> 
</RelativeLayout> 
+0

我不能使用這個,還有其他解決方案嗎? – Fra87

1

確定。由於您的最低SDK版本是16,所以您有兩個針對您的問題的解決方案。

首先是使用這個庫: https://github.com/PaoloRotolo/ExpandableHeightListView 這個庫讓你能夠擴大你的列表視圖,以充分的高度,然後只有你的滾動型將是滾動的。

第二種解決方案是使用NestedScrollView而不是ScrollView,然後使用RecyclerView代替ListView。那麼你應該只爲你的RecyclerView禁用nestedScrolling。

這兩種解決方案都會給你你想要的行爲。