2011-12-30 1 views
0

XML 질문인지 안드로이드 질문인지 확실하지 않습니다. 나는 다른 레이아웃에서 반복되는 XML 구조를 가지고 있기 때문에이를 추출하여 자체 파일에 보관하고 싶다. TableLayout의 3 행을 포함합니다. XML 파일에 오류가 발생했습니다. 왜 그런가? 외부 XML 레이아웃이 없기 때문입니까?Android 레이아웃 XML 파일에 행만 포함 할 수 있습니까?

감사합니다.

이것은 새 XML 파일의 내용입니다. 나중에이 내용을 기본 레이아웃 파일에 (포함 레이아웃을 통해) 삽입합니다.

<?xml version="1.0" encoding="utf-8"?> 
    <TableRow 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:gravity="center_vertical"> 
     <Button 
      android:id="@+id/button_calc" 
      android:layout_column="1" 
      android:layout_span="2" /> 
    </TableRow> 
    <TableRow android:gravity="center_vertical"> 
     <TextView 
      android:textColor="@color/black" 
      android:id="@+id/title_res" 
      android:layout_column="1" 
      android:padding="5dp" /> 
     <TextView 
      android:textColor="@color/black" 
      android:id="@+id/res" 
      android:layout_column="1" 
      android:textSize="25dp" /> 
    </TableRow> 
    <TableRow android:gravity="center_vertical"> 
     <TextView 
      android:id="@+id/title_res_etc" 
      android:textColor="@color/black" 
      android:layout_column="1" 
      android:paddingLeft="5dp" 
      android:layout_span="2" /> 
    </TableRow> 
+0

이 파일을 어떻게 참조하고 있습니까? 또한 http://developer.android.com/training/improving-layouts/reusing-layouts.html을 읽으셨습니까? – Jack

답변

0

당신은 그 안에 여러 View를 포함하는 부모 레이아웃으로 ViewGroup을 사용해야합니다. ViewGroup의 서브 클래스는 서브 클래스 중 일부는

LinearLayout 
RelativeLayout 
FrameLayout 
TableLayout 

에 그래서, 당신이 어떤 레이아웃 즉 내의 모든 의견을 포장해야 하나의 레이아웃에서 여러 View을 가지고있는 레이아웃 을 관리하는 데 사용됩니다 : 당신이 TableRow을 표시 할 경우

<?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="vertical"> 
     <Button 
      android:id="@+id/button_calc" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" /> 
     <!--Other views goes here--> 
</LinearLayout> 

그것은 그렇지 않으면 LayoutParams는 n은 TableLayout 내부에 랩한다 적용 대상 : TableRow

1

모든 tablerows는 테이블 레이아웃 내에 있어야합니다. 다음은 테이블 레이아웃을 사용하는 방법에 대한 andriod 튜토리얼입니다. Android table layout

+0

TableLayout 안에 그들을 포함시킬지라도? 기본 레이아웃 파일에는 TableLayout이 포함되어 있으며이 XML 파일은 에 포함됩니다. – zundi

+0

질문을 올바르게 이해하면이 레이아웃을 다른 레이아웃에도 포함해도 작동합니다. – kosa

0

정확합니다. 행만 있습니다. 열은 각 행의 첫 번째 항목을보고 열을 만들어 작동합니다.

코드가 작동하지 않는 이유는 TableLayout에 포장해야합니다. 그렇게하면 정상적으로 작동합니다.

+0

TableLayout 안에 그들을 포함시킬지라도? 기본 레이아웃 파일에는 TableLayout이 포함되어 있으며이 XML 파일은 에 포함됩니다. – zundi