2014-09-22 89 views
0

我有一個xml佈局,我想在兩種情況下使用: 1-適配器中的listView項目(不連續滾動連續) 2- for另一項活動(帶滾動)在可滾動項目佈局的列表視圖上單擊並不工作

我試圖使這一佈局滾動(滾動視圖父) - 當你的ListView項(disacle滾動效果) - 當它用於其他活動,啓用滾動視圖 但是,當我提出這個解決方案,我不能對ListView項的onClickListner。

我的XML文件:list_messages_fragment_item.xml

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@color/light_gray_2" 
    android:paddingTop="10dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:descendantFocusability="blocksDescendants" 
    isScrollContainer="false" 
> 

-- My One chlid LinearLayout containing my content 

</ScrollView> 

這個XML文件是我的ListView適配器(無需在這種情況下,滾動)

public View getView(int position, View convertView, ViewGroup parent) { 

    View vi=convertView; 
    vi = inflater.inflate(R.layout.list_messages_fragment_item, null); 

....

} 

此xml文件也用於活動佈局:(此例中需要滾動)

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getActionBar().hide(); 
    setContentView(R.layout.list_messages_fragment_item); 

....

} 
+0

請添加代碼詳細 – 2014-09-22 10:52:48

+0

什麼究竟是問題嗎? – BenjaminPaul 2014-09-22 10:52:51

+0

我有一個xml佈局,我想在兩種情況下使用: 1-適配器中的listView項目(不連續滾動連接) 2-對於另一個活動(帶滾動) 我試圖使這種佈局滾動(滾動視圖父) - 當你的ListView項(disacle滾動效果) - 當它用於其他活動,使滾動視圖 但是,當我提出這個解決方案,我不能有listView項上的onClickListner。 – 2014-09-22 11:01:27

回答

1

您需要在您的getView方法中添加觸摸攔截監聽器

ScrollView sv = (ScrollView) findViewById(R.id.scrollView); // this is view from inflated layout 
sv.setOnTouchListener(new OnTouchListener() { 
// Setting on Touch Listener for handling the touch inside ScrollView 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // Disallow the touch request for parent scroll on touch of child view 
     v.getParent().requestDisallowInterceptTouchEvent(true); 
     return false; 
    } 
}); 

這將在您的列表項目啓用觸聽者

+0

是的,我想用在這種情況下的ListView項(適配器)一個佈局,這個佈局doen't應該有一個滾動視圖。但是,當我使用相同的佈局的活動,我想讓它只能滾動這種用法。 – 2014-09-22 10:56:25

+0

您可以使用listview項目佈局並在適配器中充氣它。 我的意思的ListView應該在LinearLayout中,而不是滾動型 添加您的佈局xml文件,以幫助進一步 – 2014-09-22 11:00:00

+0

但我怎麼可以使用此佈局,滾動視圖在第二種情況下? 我已經編輯我的問題與添加更多的細節 – 2014-09-22 11:27:25

0

我發現我想要的解決方案。 我使用的LinearLayout父母在我的XML文件中。 我創建其他layour的活動:此佈局包含滾動型,裏面包括我,我想重新使用我的XML文件。 新的佈局在活動中使用:

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/white" 
    android:paddingTop="10dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:orientation="vertical" 
    android:scrollbars="none"> 

    <include layout="@layout/list_messages_fragment_item"/> 
    </ScrollView> 

list_messages_fragment_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="@color/light_gray_2" 
android:paddingTop="10dp" 
android:paddingLeft="10dp" 
android:paddingRight="10dp" 
android:descendantFocusability="blocksDescendants" 
> 

......我的版面內容

</LinearLayout> 
相關問題