2010-07-10 5 views
2

내가 요소와 문자열의 목록을 말해봐 화면의 각 단어의 시작은 서로 옆에있는 방식으로하고 싶습니다. 이처럼안드로이드를 중심으로 텍스트

:

         One 
             Two 
             Three 
             Four 

내가 안드로이드에서이 최선을 어떻게 글꼴 아마 문자 당 다른 길이 있음을 고려?

답변

1

위해를 설정할 수 있지만 효과는 당신이 원하는 TableLayoutTableRows을 사용하여 달성 할 수 있습니다. TableLayout은 설명 된대로 각 행의 각 열에 요소를 정렬합니다.

TableLayout은 TableRow의 배경색을 검정색으로 변경 한 다음 View 객체의 패딩 및 배경색을 변경하는 등의 영리한 해킹처럼 보였지만 (TableRayout은 행 또는 눈금 선 사이에 선이있는 것을 지원하지 않습니다. TableRow에서 검정색 구분선을 얻기 위해 흰색으로 표시되지만 View 객체에 따라 항상 작동하지는 않습니다.

저는 비슷한 피클에 있는데, 제가 조사한 첫 번째 애비뉴였습니다. 그것은 내 상황에 대한 해결책이 없었지만 이것은 당신을 위해 일할 수도 있습니다. 목록에있는 텍스트를 정렬하는 방법을 찾으면 나는 그것에 대해 듣고 싶습니다.

편집 : 또한 (대화가 진행되는 방식에 따라) row.setOnClickListener()을 설정하고 TableView에서 전체 행을 클릭 할 수 있다고 언급 할 가치가 있다고 생각합니다. 일단 ScrollView로 래핑하면 꽤 목록처럼 보입니다.

1

당신은 내가 ListView를 엄격히 필요한 경우 응용 프로그램이 행동과 방법을 모르겠어요 당신이 중심이 할 요소에 gravitydetail

android:gravity="center_horizontal" 
+0

이렇게하면 요소가 서로 독립적입니다. 예제에서와 같이 첫 글자를 서로 위에 놓고 싶습니다. – Christian

0

부모님의 물건을 layout_width="wrap_content"으로두고 부모 전체를 가운데에 넣으려는 것 같습니다.

아마도 이와 같은 것일 수 있습니까?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <TextView android:text="Content above..." 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <LinearLayout android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"> 
     <TextView android:text="One" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
     <TextView android:text="Two" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
     <TextView android:text="Three" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 

    <TextView android:text="Content below..." 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" />  
</LinearLayout> 

gravitylayout_gravity의 차이를 기억하십시오. gravity 속성은보기의 내용을 참조합니다. layout_gravity (및 다른 모든 속성 접두어가 layout_ 인 접미사)는 부모 내에서 뷰의 레이아웃을 참조합니다.

편집 : 당신이 유사 ListView에 항목의 형식을 layout_width="fill_parent"layout_height="fill_parent" 사용하여 ListView에 자체 목록 항목 레이아웃으로 이런 일을하려고 찾고 있다면 :

<LinearLayout android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:weightSum="2" 
    android:gravity="center"> 
    <TextView android:id="@+id/text" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout> 

변경 텍스트 뷰의 내용을 보통의 방법으로 각 목록 항목에 id가 text 인. 현재 테마에서 설정 한 minHeight 설정은 터치하기 좋은 크기로 유지됩니다.

이 경우 균일 한 센터링은 LinearLayout의 weightSumgravity 및 TextView의 layout_weight의 조합으로 처리됩니다. 부모의 weightSum으로 나누어 진 TextView의 무게는 LinearLayout이 줄 수있는 수평 공간의 비율을 결정합니다. 위의 예제에서 사용 가능한 가로 공간은 1/2이되지만 가운데에 배치됩니다.

ListView는 현재 화면 상에없는 목록 항목의 내용을 알지 못하기 때문에 어댑터의 모든 항목의 텍스트를 측정하여 콘텐츠를 완벽하게 맞출 수있는 방법이 없습니다. 위의 예와 같이 목록 항목 레이아웃을 사용하여 대략적으로 계산해야합니다.

+0

이러한 접근 방식은 전체 목록 항목을 클릭 할 수 없지만 클릭 가능한 서피스는 가능한 커야한다는 문제점이 있습니다. – Christian

+0

아, 다른 콘텐츠가 아니라 ListView 항목을 클릭 할 수 있기를 원합니다. 편집 내용을 확인하십시오. – adamp

0

이 = "center_horizontal"또는

NVM layout_gravity와의 LinearLayout에 ListView에 랩 :

그래서 기다릴 ... 분명히 작동하지 않습니다 .. 각 라인에 대한 클릭 할 목록을 원하는 화면의 전체 너비, 그리고 모든 선을 왼쪽으로 정당화하려는 경우, 그리고 양쪽 맞춤을 해독하지 않고 양쪽 정렬 된 텍스트를 가운데에 배치하려면?

관련 문제