2017-12-31 37 views
0

여기에만 LinearLayout 내에서 작동하는 내 코드 물론있는 LinearLayout은

mainView = new MainView(this, imageId, text, 3); 
mainView.setOnTouchListener(this); 
LinearLayout.LayoutParams mainParams = new 
LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
LinearLayout mainLinear = new LinearLayout(this); 
ScrollView.LayoutParams scrollParams = new 
ScrollView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
ScrollView scrollView = new ScrollView(this); 
LinearLayout.LayoutParams myViewParams = new 
LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
mainLinear.addView(mainView, myViewParams); 

scrollView.addView(mainLinear, mainParams); 
addContentView(scrollView, scrollParams); 

의 표시되지 않습니다. ScrollView 안에 넣어주세요.

+0

당신은이'대신 MATCH_PARENT''의 WRAP_CONTENT''의 크기를 LinearLayout' 제공하기 위해 시도 할 수 있습니다. 그리고 (관련이없는) 왜 XML 대신 Java에서이 작업을 수행하고 있습니까? – Henry

+0

추락 사고가 있습니까? – lib4

+0

Henry << Java로 반응하는 View를 만들고 있습니다. 그것은 끝났지 만 두루마리. 사실 OnTouchListener를 구현하여 스크롤을 수행 한 다음 사용자가 드래그를하는지 여부를 감지하도록 ACTION_DOWN 및 ACTION_MOVE 2 Y 축 지점을 가져올 수 있습니다. 하지만 네가 나에게 말한 것을 시도했다. 하지만 아직 작동하지 않았습니다! –

답변

0

ScrollView 님의 자녀는 신장이 WRAP_CONTENT이어야합니다. xml을 사용하여 동일한 레이아웃을 시도하면 AS는 정확하게이 경고를 보냅니다.

콘텐츠가 적은 경우 하위보기에서 스크롤보기의 전체 높이를 차지하려면 setFillViewport()을 사용할 수 있습니다.

이 당신을 위해 작동합니다 :

mainView = new MainView(this, imageId, text, 3); 
mainView.setOnTouchListener(this); 
LinearLayout.LayoutParams mainParams = new 
LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
LinearLayout mainLinear = new LinearLayout(this); 
ScrollView.LayoutParams scrollParams = new 
ScrollView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
ScrollView scrollView = new ScrollView(this); 
LinearLayout.LayoutParams myViewParams = new 
LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
mainLinear.addView(mainView, myViewParams); 

scrollView.addView(mainLinear, mainParams); 
scrollView.setFillViewport(true); 
addContentView(scrollView, scrollParams);