2011-12-12 2 views
0

가능한 중복 :
Android table view구현 테이블보기 안드로이드

나는 년 전 asked here이었다로 거의 같은 질문이 있습니다 - 편안한 방식으로 테이블 뷰 위젯을 구현하는 방법 예 : this screenshot 그 질문에 대한 좋은 대답이 없었으므로 다시 게시하십시오.

TextView 여러 요소 및 ImageView 포함 그 행과 같은 LinearLayout ListView 사용. 그러나 문제는 각 행이 열 너비 측면에서 다른 행렬과 완전히 독립적이라는 것입니다. 한 행의 열에 다른 행보다 긴 텍스트가 있으면 두 행이 수직으로 정렬되지 않습니다. 그리고 GridView은 목록에 저장된 균질 데이터를 표시하고 사진 모음과 같이 열에 표시하기 때문에 내 경우에는 적절하지 않은 것처럼 보입니다. 이것이 어떻게 구현 될 수 있는지 아는 것이 있습니까? 감사.

업데이트. 좋아, 방금 here 해결책을 찾았습니다. 테이블 행에 대한 선형 레이아웃에서 android:layout_weight을 설정했는데 android:layout_widthwrap_content으로 잘못 설정했습니다. LinearLayout의 모든 TextView가 모든 행에서 동일한 폭을 갖도록 만든 0dip으로 설정합니다. 내 행의 예제는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="horizontal" 
android:padding="6dip"> 
<TextView 
    android:id="@+id/toptext" 
    android:layout_width="0dip" 
    android:layout_height="fill_parent" 
    android:layout_weight="2" 
    android:textSize="24sp" 
/> 
<TextView 
    android:id="@+id/bottomtext" 
    android:layout_width="0dip" 
    android:layout_height="fill_parent" 
    android:layout_weight="3" 
    android:textSize="24sp" 
/> 
<ImageView 
    android:id="@+id/play" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:src="@drawable/play_1" 
    android:clickable="true" 
/> 
</LinearLayout> 
+0

jquery mobile help? 그냥 생각해 – visista

+0

레이아웃을 읽어야합니다. RelativeLayout, LinearLayout, GridLayout 등이 있습니다. 레이아웃과 결합되어 있습니다. 나는 당신에게 몇 가지 단서를 줄 수있다. (나는 안드로이드를 몇 달 동안 코딩하지 않았다.) : 당신은 분명히 그들이 GridLayout을 5 칸 (또는 각 칸에 가중치를 할당 한 레이아웃)으로 사용했다는 것을 볼 수있다. 텍스트를 최대 4 문자까지 또는 사용자가 좋아하고 어울리는 부분 문자열로 분리하십시오. 이 방법을 여러 가지 방법으로 구현할 수 있습니다. – LuckyLuke

+0

GrAnd가 지적한대로 레이아웃은 많은 양의 데이터를 표시하지 않습니다. 불행히도이 경우입니다. @visista 처음에는 Sencha Touch를이 프로젝트의 전화 갭으로 시도했지만 프로토 타입을 사용하는 RAM의 양은 용납 할 수 없었습니다 (22Mb). – SimpleMan

답변

0

원하는 셀 너비를 계산하려면 테이블이 데이터를 기반으로 모든 행과 셀 너비를 알아야합니다. ListView은 모든 정보를 한 번에 알 수 없으므로 이러한 계산을 수행 할 수 없습니다. IMHO는 두 가지 솔루션입니다.

  1. ListView 행 항목에 대한 고정 폭을 정의하십시오. 이 접근 방식은 무제한 목록에 대한 가능한 지원과 가능한 지원과 같이 적은 자원을 소비합니다.
  2. TableLayoutListView (적어도 시각적으로)처럼 동작하도록합니다. Here is 내 대답은 그것을 구현하는 방법. 하지만이 솔루션은 테이블에 많은 행이없는 경우에만 유용합니다 (< 100은 괜찮습니다), 모든 날짜를 한 번에로드하므로 특정 시간에 보이지 않을 수도 있습니다.
+0

답변 해 주셔서 감사합니다. 나는 많은 양의 데이터로 확장해야하므로 첫 번째 옵션을 매우 선호합니다. 고정 너비 방식은 내 앱을 특정 화면 해상도에 연결하고 해상도가 다른 Android 휴대 전화가 많기 때문에 다소 걱정 스럽습니다. 하지만 난 데이터를 반복하여 런타임에 각 열의 너비를 계산할 수있는 몇 가지 코드를 구현할 수있을 것 같아요. – SimpleMan

+0

고정 픽셀 너비를 할 필요가 없습니다, 당신은 할 수있는 "고정"백분율 너비를 사용하여 'LinearLayout'과 가중치를 설정하여 열을 시뮬레이트합니다. – kabuko

+0

실제로 LinearLayout의 항목에 대해 weghts를 설정하고 있었지만 항목이 여전히 정렬되지 않았습니다. – SimpleMan