1

我有以下佈局(爲了簡潔起見,我刪除了不同的屬性):Android的 - 滾動不使用滾動條

<RelativeLayout> 
    <LinearLayout> 
     <android.support.v7.widget.Toolbar/> 
     <LinearLayout android:id="@+id/item1"/> 
     <LinearLayout android:id="@+id/item2"/> 
     <LinearLayout android:id="@+id/item3"/> 
     <ListView/> 
    </LinearLayout> 
    <android.support.design.widget.FloatingActionButton/> 
</RelativeLayout> 

我試圖讓這個整個頁面是滾動的。此刻,只有ListView滾動。任何想法如何做?請注意,我無法使用ScrollView,因爲我嵌入了一個ListView。此外,外部元素必須是RelativeLayout,因爲我需要FloatingActionButton固定而不管滾動。

+1

我正在考慮的一個方向:addHeaderView(View),我可以在其中添加項目1,2.3。工具欄可以修復。 – checklist

回答

3

ScrollView內有ListView會導致很多麻煩。改爲只留下ListView在佈局

<RelativeLayout> 
    <LinearLayout> 
     <android.support.v7.widget.Toolbar/> 
     <ListView/> 
    </LinearLayout> 
    <android.support.design.widget.FloatingActionButton/> 
</RelativeLayout> 

並移動LinearLayouts到單獨的文件(例如header.xml

<LinearLayout> 
    <LinearLayout android:id="@+id/item1"/> 
    <LinearLayout android:id="@+id/item2"/> 
    <LinearLayout android:id="@+id/item3"/> 
</LinearLayout> 

可以作爲標頭然後添加布局的ListView

ListView listView = (ListView) findViewById(R.id.list); 
View header = LayoutInflater.from(context).inflate(R.layout.header, listView, false); 
listView.addHeaderView(header); // call before you set adapter! 

現在整個視圖都會滾動。如果您使用onItemClickListener,請不要忘記索引轉移了listView.getHeaderViewsCount()

+1

完美!正是我所追求的,你給出了一個非常明確的例子!謝謝! – checklist

-1

我認爲,只有這樣才能使佈局滾動是把所有的內容爲ScrollView例如像這樣:

<RelativeLayout> 
    <ScrollView android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <LinearLayout> 
      <android.support.v7.widget.Toolbar/> 
      <LinearLayout android:id="@+id/item1"/> 
      <LinearLayout android:id="@+id/item2"/> 
      <LinearLayout android:id="@+id/item3"/> 
      <ListView/> 
     </LinearLayout> 
     <android.support.design.widget.FloatingActionButton/> 
    </ScrollView> 
</RelativeLayout> 
+0

ListView不能位於ScrollView中。 – checklist

+0

如果您在代碼中複製了setListViewHeightBasedOnChildren(lv)方法,那麼您可以在scrollView的內部使用listView,並且可以展開listView。另一種可能的解決方案是簡化您的佈局,並將您想要滾動的佈局也放在列表中,作爲頁眉或頁腳 –

0

使用垂直滾動內垂直滾動總是凌亂而可能只是不工作,但你可以chchck LINK

你也可以使用listView.requestDisallowInterceptTouchEvent(false)