2014-06-22 28 views
1

我有一個自定義FrameLayout,它包含一個滾動視圖作爲其元素之一。 我要禁用滾動型的孩子,它似乎所有的EditTextssScrollView是工作禁用包含scrollView的framelayout的子項

我打電話的FrameLayout裏

private void disableDescendants(ViewGroup v) { 
     for (int i = 0; i < v.getChildCount(); i++) { 
      if (v.getChildAt(i) instanceof ViewGroup) { 
       disableDescendants((ViewGroup) v.getChildAt(i)); 
      } 
      v.setEnabled(false); 
      v.setFocusable(false); 
      v.setFocusableInTouchMode(false); 
     } 
    } 

onLayout這種方法還沒有,而ScrollView本身唐似乎沒有被禁用。 我可以點擊它們來帶上鍵盤。

我該如何讓他們禁用?

+0

粘貼布局代碼@! – Dev

回答

0

爲什麼getChildCount()可能無法正常工作:Android: Difference between getCount() and getChildCount() in ListView

試試這個:

ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView); 
for (int i = 0; i < scrollView.getChildCount(); i++){ 
    View view = scrollView.getChildAt(i); 
    view.setEnabled(false); 
} 
+0

我的方法是不是這樣做? –

+0

看起來像它。但是我不認爲你需要深入研究一切(使用遞歸)來禁用視圖。這是我用過的代碼,它確實有效。 –

+0

我的觀點不是一個列表視圖.... –