2014-10-05 7 views
0

ListView가 있습니다. 나는 LayoutParams를 아래와 같이 설정하면, ListView가 각 셀을 많은 시간을 가져 와서 느리게 만듭니다. [이 모노를 통해 그대로 코드는 C#을 :]LayoutParams.MatchParent를 사용하지 않고 ListView를 최적화합니다.

var layoutParams = new RelativeLayout.LayoutParams (someWidth, someHeight); 
    layoutParams.LeftMargin = someLeftMargin; 
    layoutParams.TopMargin = someTopMargin; 
    this.LayoutParameters = layoutParams; 

나는 다음을 수행하여 속도 저하를 제거 할 수 있습니다

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent); 
    this.LayoutParameters = layoutParams; 

을하지만 그건 계층 구조를 제외에 추가 계층을 넣어 나를 강제로 부모님의 크기와 일치시키고 싶습니다. 가능하다면 나는 그것을 피하고 싶습니다.

내가 두 세계에서 최고의 성능을 발휘할 수 있는지 궁금합니다. ListView를 부모 내에있는 임의의 위치에 배치하는 LayoutParams를 설정할 수 있습니까? 모든 셀을 여러 번 가져와 성능을 저하시키지 않아도됩니다.

답변

0

다음은 그것을 않습니다 보인다 :

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent); 
    layoutParams.SetMargins(leftMargin, topMargin, rightMargin, bottomMargin); // four ints 
    this.LayoutParameters = layoutParams; 

이 매우 이상하다. 안드로이드가 두 가지 경우를 다르게 처리하는 이유는 잘 모르겠습니다. 그러나 그것은 문제를 해결합니다.