2011-09-16 8 views
0

디자이너 여기에 ListView를위한 디자인, 내 안드로이드 응용 프로그램에 대한 몇 가지 디자인을 만들어 (하지 진짜하지만 같은 생각 ..) :
enter image description here디자인에 따라 뷰를 올바르게 정렬하는 방법은 무엇입니까?

그래서 녹색 영역의 중간에 일부가 텍스트, 오렌지 영역에서 이미지 뷰 (clickable ..), 그리고 파란색 영역의 중간에 다른 텍스트 ..이 1 ​​listview .. 그래서 만약 당신이 한 행을 다른 스 와이프 같은 .. (그들은 arent 3 목록보기 ..) 노란색 영역이 비어 있습니다.

모든 화면 크기에서보기가 정렬되도록하려면 어떻게해야합니까? 녹색과 파란색 영역에서 텍스트를 가운데에 배치하는 방법은 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:orientation="horizontal" 
android:layout_height="wrap_content" android:paddingLeft="40dip" 
android:paddingRight="40dip"> 
<TextView android:id="@+id/Start_Numbering" android:textSize="19.5sp" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:layout_weight="0.3" 
    /> 

<ImageView android:id="@+id/Start_ImageView" 
    android:layout_weight="0.1" android:layout_height="wrap_content" 
    android:layout_width="fill_parent"  android:src="@drawable/list_noaudioavailable" 
    ></ImageView> 


<TextView android:id="@+id/Start_Name" android:textColor="#a7e9fe" 
    android:textSize="21dip" android:layout_width="fill_parent" 
    android:layout_weight="0.6" 
    android:layout_height="wrap_content" /> 
여기

가의 getView입니다 :
감사

다음

내가 사용하는 행의 XML입니다

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder  holder; 

    if(convertView == null) { 
     convertView = mInflater.inflate(R.layout.start_row, null); //line 47 
     holder=new ViewHolder(); 

     holder.tv_Name =(TextView)convertView.findViewById(R.id.Start_Name); 
     holder.tv_PageNumber = (TextView)convertView.findViewById(R.id.Start_Numbering); 
     holder.im_Audio=(ImageView)convertView.findViewById(R.id.Start_ImageView); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.tv_Name.setText(Names[position]); 
    holder.tv_PageNumber.setText(Integer.toString(PageNumber[position])); 
    return convertView; 
} 

class ViewHolder { 
    TextView  tv_Name; 
    TextView  tv_PageNumber; 
    ImageView  im_Audio; 
} 

하지만 얻을 모두는 왜 TV_NAME 밤은 이것이다 표시 중입니까? : enter image description here

+0

http://stackoverflow.com/questions/4275216/synchronize-two-listview-positions을 보시오. –

+0

2 개의 목록보기를 갖고 싶지 않습니다. listview의 row.xml을 구성하여 위치를 지정하고 싶습니다. 내가 첫 번째 게시물 – Omar

+0

에서 설명한대로 "이것은 1 listview .. 그래서 만약 당신이 한 행을 스 와이프하면 다른 .. 또한 (그들은 3 listviews arent ..)"이 부분은 명확하지 않았을 수 있습니다 더 나은 방식으로 묘사됩니다. 어쨌든 대답에서 유익을 얻으면 받아들이고 upvote하는 것을 잊지 마십시오. –

답변

1

오마르. 네 질문은 분명하지 않았지만, 나는 그걸 총으로 줄 것이다.

당신은

  • 그것은 다섯 개 가지 하위 요소

    • 이있을 것이다, 당신은 수평
    • 로 방향을 가진 부모로서

      1. 있는 LinearLayout을 사용하여 row.xml에서

        를 사용 . 노란색으로보기 (layout_weight = 2)
      2. b. layout_weight = 5 인 파란색 TextField
      3. c. 오렌지색 ImageField with layout_weight = 3
      4. d. layout_weight = 4 인 녹색 TextField
      5. e. 텍스트 사용 적절한 텍스트 속성을 정렬 중심으로 들어 에 layout_weight = 1
  • 노란색보기. 이러한 모든 요소에는 layout_width가 fill_parent로 정의되어 있어야합니다.

    +0

    무엇이 명확하지 않았습니까? 따라서 뷰를 구성하는 핵심은 layout_weight를 사용하는 것입니다. – Omar

    +0

    당신이 제안한 xml로 위의 게시물을 편집했습니다. 오른쪽과 왼쪽의 패딩은 – Omar

    +0

    대신 미안해서 layout_weight 대신 시도해보십시오. 여기에 설명이 있습니다 http://developer.android.com/guide/topics/ui/layout-objects.html –

    관련 문제