2011-01-31 3 views
3

을 게재되지 않습니다 신청. XML에 지정된 하나의 행이 있는데, 그 행은 표시되지만 그 아래에는 표시되지 않습니다.행이 이전 요청했지만, 나는 아직 나를 위해 일한 해결책을 발견 한

이 코드가, 나뿐만 아니라 내 클래스의 생성자를 추가했습니다되어

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout> 
    <TabHost> 
    <TabWidget /> 
     <FrameLayout> 
     [..]   
      <LinearLayout>   
      [..] 
       <TableLayout 
       android:id="@+id/distanceTable" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:layout_gravity="center" 
       android:background="#DDDDDD" 
       android:stretchColumns="1" > 
        <TableRow> 
         <TextView 
         android:textColor="#000000" 
         android:text="@string/label_device" 
         android:layout_gravity="center" 
         android:padding="3dip" 
         android:textSize="18sp" /> 
         <TextView 
         android:textColor="#000000" 
         android:text="@string/label_distance" 
         android:layout_gravity="center" 
         android:padding="3dip" 
         android:textSize="18sp" /> 
         <TextView 
         android:textColor="#000000" 
         android:text="@string/label_time" 
         android:layout_gravity="center" 
         android:padding="3dip" 
         android:textSize="18sp" /> 
        </TableRow> 
       </TableLayout> 
      </LinearLayout> 
     </FrameLayout> 
    </TabHost> 
</LinearLayout> 

불행하게도 hierarchyviewer :

private LayoutInflater theInflater; 
private LinkedList<View> rows; 
private Context thisContext; 

public DistanceTableView(LayoutInflater vi, Context context) 
{ 
    theInflater = vi; 
    rows = new LinkedList<View>(); 
    thisContext = context;  
} 

public void addRow(LocationMessage locationMsg){ 
    View messageView = theInflater.inflate(R.layout.homepage, null); 
    TableLayout table = (TableLayout)messageView.findViewById(R.id.distanceTable); 

    TextView senderNameTextView = new TextView(thisContext); 
    senderNameTextView.setText(locationMsg.getSenderName()); 

    TableRow tr = new TableRow(thisContext); 
    tr.addView(distanceTextView); 
    table.addView(tr); 
    rows.addFirst(messageView); 
} 

homepage.xml이 포함되어, 나는 몇 가지 요소와 매개 변수를 제거 .bat는 행이 존재하지만 보이지 않는지 확인하기 위해 나를 위해 작동하지 않습니다. 디버거에서는 나에게 잘 보입니다.

+0

'활동'에'addRow()'메소드가 있습니까? 'rows' 란 무엇입니까? - 초기화되는 방법과'addFirst()'는 무엇을합니까? 'thisContext'는 어떻게 초기화됩니까? –

+0

위의 질문에서 코드 부분을 확장했습니다. 'rows'는 뷰의 LinkedList입니다. 물건을 초기화하는 생성자를 추가했습니다. 'addRow()'는'MapActivity'를 확장하는 다른 클래스를 확장하는 클래스에 있습니다. – Lars

답변

0

새 행을 추가 한 후에 TableLayout.requestLayout()을 호출해야한다고 생각합니다. docs에서

:

전화 뭔가 이 뷰의 레이아웃을 무효화했다 가 변경되었을 때에이. 그러면 뷰 트리의 패스 이 전달됩니다.

+0

불행히도 그게 도움이되지 못했습니다. – Lars

+0

나를 위해 작동하지 않았다. –