마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

커스텀리스트뷰 짤림현상 질문드립니다..

0 추천

스텀리스트뷰를 구현하였습니다.

텍스트뷰로 아이템들이 나열되게 구현하였습니다.

겉으로 보기엔 문제가없는데

다이얼로그 크기를 고정해서 줄시에

리스트뷰의 아이템갯수가 늘어나면

리스트뷰 밑에있는 뷰를 밀어내서 짤라버리네요..

어떻게 해결해야할까요

 

weight로 비율도 다 나눠논 상태인데

리스트뷰가 아이템이 늘어나면 weight를 무시하고 밑에 버튼들을 밀어내서 짤라내버리네요ㅣ

예림이그코드좀바바 (2,470 포인트) 님이 2015년 2월 25일 질문
예림이그코드좀바바님이 2015년 2월 25일 수정
그림이라도 캡쳐해서 올려보셔요.. 도통 감이....
리스트뷰와 그 아래 뷰가 동일레벨의 레이아웃일 때 잘린다는건 잘 납득이 가지 않지만, 리스트뷰의 height를 wrap_content로 주셨는지 확인해보시거나 리스트뷰를 ScrollView로 감싸보세요
height를 wrap_content로 준게맞습니다
다만 상위레이아웃을 weight를 줬는데 그걸 무시해버리는건가요?
근데 그냥 dp로 주면 아이템이 없어도 빈공간으로 리스트뷰가 잘리듯이
보기안좋게 나오더라고요
세상밖으로님 스샷첨부했습니다
보이는대로 리스트뷰가 밑에 버튼을 밀어내서 잘라버립니다.
스크롤뷰로감싸니 잘림현상은 사라졌는데 리스트뷰가 한개씩만 출력되네요
스크롤뷰를 리스트뷰 위에 바로 감싸지말고 리스트뷰 상위 레이아웃을 두고 그걸 감싸도 한개만 출력되시나요 ?
넵 그러네요 ㅎㅎ.. 애초에 다른레이아웃으로 다 나눠놓고 시작한거였습니다.

3개의 답변

+1 추천
 
채택된 답변
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:layout_height="500dp"
    android:background="#cccccccc"
    android:orientation="vertical"
    tools:context=".AppInfoActivity" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="400dp" >

        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:layout_margin="20dp" >

        </ListView>

        <LinearLayout
            android:id="@+id/loading_container"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="gone" >

            <ProgressBar
                style="?android:attr/progressBarStyleLarge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="4dip"
                android:singleLine="true"
                android:text="@string/loading"
                android:textAppearance="?android:attr/textAppearanceSmall" />
        </LinearLayout>

    </FrameLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#eeeeeeee" >

        <Button
            android:id="@+id/Button01"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:layout_weight="1"
            android:text="Button" />

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:layout_weight="1"
            android:text="Button" />

    </LinearLayout>

</LinearLayout>
nicehee (73,100 포인트) 님이 2015년 2월 26일 답변
예림이그코드좀바바님이 2015년 3월 2일 채택됨
오 너무너무감사드립니다!
참고하겠습니다.
헉 채택기능이있는줄 처음알았네요;;
죄송합니다
이분 카리스마 쥑이넼ㅋㅋㅋㅋㅋㅋ
+1 추천
전체를 릴레티브레이아웃으로

먼저 아래쪽 버튼영역의 높이를 잡아준다음

리스트뷰를 전체크기로 놓고

리스트뷰의 상대위치를 레이아웃(버튼들있는)위로 배치해보셔요
nicehee (73,100 포인트) 님이 2015년 2월 25일 답변
답변감사드립니다.
이미해보긴햇는데 안되네요...ㅠ
설사된다해도 관계배치에라서 리스트뷰가 늘어나는데로 밑으로 쭉쭉내려갈거같아요.
다이얼로그 높이를 고정으로주시고 하셔야지요
감사합니다 일단 이걸로해결했습니다.
기기별 dp설정이 좀 그렇긴하지만 가장 간단명료하네요.
+1 추천

제가 설명한 데로 만들어본건데 이런걸 원하신거 아닌가요?

 

nicehee (73,100 포인트) 님이 2015년 2월 26일 답변
넵 맞습니다!!!
완벽하신대요!
어떻게 구현하신건가요?
위 답변대로 릴레티브레이아웃으로 관계지정해주신거라면
직접 dp하드코딩해주신건데 기기별 호환성은 values설정으로 해결하신건가요?
레이아웃과 상관없이 전체높이를 dp로 고정해주고
리스트뷰와 아래쪽 버튼도 크기를 고정해준거지요..
해상도에 관계없이 갤3/갤5 모두 같은비율로 화면에 나오네요
...