ScrollView에서 사용할 수있는 최대 높이를 어떻게 결정합니까?ScrollView의 최대 높이가 필요합니다.
ListView와 같은 것을 구현하고 싶습니다. 따라서 레이아웃 목록 항목에 사용할 수있는 공간의 양을 알고 싶습니다. TestList가 하위 클래스 인 ScrollView 인 단순한 LinearLayout이있는 응용 프로그램을 생각해보십시오. TestList에는 런타임에 추가 된 단일 LinearLayout이 포함되어 있습니다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="top" />
<com.example.testsimplelist.TestList
android:id="@+id/test_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="bottom" />
</LinearLayout>
내 질문은 : "test_list"에 항목을 추가 할 때 보이는 수직 공간의 크기입니다.
(이미 ListView 경로를 사용했지만 너무 많은 속도 저하 현상을 일으키는 getView에 대한 과도한 호출 문제가 있습니다 .LowView에서 사용 사례가 많이 줄어들었기 때문에 ListView에 문제 주위에 해킹보다 일)
가 여기에 내가 무엇을 시도했다입니다 : ScrollView.onMeasure의 PARAMS를 사용하여
1) - 효과적으로 무한 쓸모가 있기 때문이다..
2) ScrollView 내부의 레이아웃 높이 사용 - 내용이 없으므로 처음에는 0입니다. 즉 높이는 내용에 따라 다릅니다.
"*을하지만 너무 속도 degregation * 원인의 getView 과도한 통화 문제로 실행하고 있습니다"- 당신이 뭔가를 아주하고있는 것처럼 그 소리 잘못된; 'ListView'는 속도를 위해 만들어졌습니다. 1)에 대해서 : 그것은 매개 변수가 일반 int가 아니고 View.MeasureSpec에 따라 인코딩되기 때문입니다. 꼭 [Custom Components guide] (http://developer.android.com/guide/topics/ui/custom-components.html)를 읽으십시오. –
속도 저하 - 동의합니다. 그러나 ListView 자체가 효율적일 수 있지만 배치하는 것은 여러 번 레이아웃하고 점차적으로 레이아웃을 발생시키는 것입니다. 따라서 한 항목에 대해 getView를 호출하고, 재사용하고, 두 번째 항목에 대해 getView를 호출하고, 재순환하는 등의 효과가있었습니다. 목록을 채우기 위해 getView를 세 번째 연속 호출하기 전에 두 번 수행했습니다. 나는 진정한 원인을 발견 할지라도 깨지기 쉽다. 내 수정 내용은 안드로이드의 미래 변화에 독립적 일 수 없다. 누가 알 잖아 ... –
ScrollView.getMeasuredHeight()가 작동하는 것으로 보입니다. 하지만 TestList 위젯의 무게를 1 (다른 모든 것은 0)으로 설정해야했습니다. –