2013-01-21 83 views
0

首先 - 我知道,我不應該把一個ListView放到一個ScrollView中,因爲ListView負責處理它自己的垂直滾動。Android佈局問題,滾動視圖中的幾個ListViews

不管怎麼說,在我的情況是不同的 - 問題:

我有一個觀點,我在那裏表現出一些信息,也有一些行動。 下面是一個例子屏幕:

enter image description here

EMAIL1是放置在一個ListView一個ListItem。 Homepage也是放置在第二個ListView中的ListItem。 (我使用列表視圖,因爲我不能樣式按鈕像我可以與列表項和列表視圖 - 另一個原因是,我可以顯示了第二個郵件:電子郵件2是否存在

反正。現在的問題是,該佈局看起來像這樣:

<ScrollView>(父) - ><LinearLayout>(SubParent) - ><LinearLayout> - >((它所描述的電子郵件,或 「Sonstiges」,用首頁) - ><ListView>(這裏是ListView控件)..

這個問題我有是,使用滾動型時,它減少的第二個元素了,我不能正確地看它,看看這裏:

enter image description here

在這裏,我用黃色標記,是我可以cl的地方ICK的列表項..它表明只是一點點,和第3項甚至不能顯示:

​​

我試了一下,是,除去了滾動。那麼現在它向我展示了第二個項目的好處,但在整個視圖中,我需要滾動,導致比我在一個「頁面」上看到的信息和操作更多。

一些axml(其 「Aktionen」,從上屏幕),其餘看起來完全是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
    <ScrollView 
     style="@style/ScrollView" 
     xmlns:local="http://schemas.android.com/apk/res/INMobileCRM4Android.INMobileCRM4Android" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 
     <LinearLayout style="@style/LinearLayout"> 
     <LinearLayout style="@style/LinearLayoutSmall"> 
      <TextView 
      style="@style/TextAktionen" 
      android:text="Aktionen" /> 
      <Mvx.MvxBindableListView 
      local:MvxBind="{'ItemsSource':{'Path':'ActionsList'},'ItemClick':{'Path':'ActionCommand'}}" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:cacheColorHint="#00000000" 
      local:MvxItemTemplate="@layout/addressshowdataactionlistitem"/> 
     </LinearLayout> 
     </LinearLayout> 
    </ScrollView> 

風格:

<style name="LinearLayout" parent="android:Theme"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">fill_parent</item> 
    <item name="android:orientation">vertical</item> 
    <item name="android:background">@string/backgroundPicture</item> 
    </style> 
    <style name="LinearLayoutSmall" parent="android:Theme"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:orientation">vertical</item> 
    </style> 
    <style name="ScrollView" parent="android:Theme"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    </style> 

而且列表項本身的風格ISN」這是必要的。我改成了LinearLayout,FrameLayout,RelativeLayout,它總是一樣的。

我希望有人能幫助我..

+0

我問了一個關於ScrollView和TimePicker的類似問題,因爲TimePicker處理它自己的滾動。雖然沒有得到任何答案。我開始擔心這是我們不應該做的事情。我真的需要它在我的應用程序,否則我的佈局將是一半空。 –

+0

雖然很奇怪... – eMi

回答

0

,因爲它似乎是一個已知的問題,在這裏看到:Scrolling with Multiple ListViews for Android,我會自己回答這個問題。

至少我使用了每個Element,一個ListView。這是有效的,但它有點unicely,因爲每個ListView現在只有一個ListItem。

1

我設法解決了我的TimePicker問題,這可能適用於您和您的ListViews。從本質上講,它們都需要相同的東西,控制觸摸事件,因此必須在Java文件中重寫。

我通過在一個單獨的Java文件中創建一個自定義TimePicker,然後在XML中將它作爲一個View進行調用。

也許你可以創建一個自定義的ListView,然後在文件末尾調用下面的代碼:

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 

    // Stop ScrollView from getting involved once you interact with the View 
    if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) 
    { 
     ViewParent p = getParent(); 
     if (p != null) 
      p.requestDisallowInterceptTouchEvent(true); 
    } 
    return false; 
} 

第一觸摸事件進行查看後,將獲得焦點,這將接管滾動職責。

+0

thx爲答案,我不能那樣做,因爲我正在與Monodroid合作。無論如何+1的努力 – eMi