2013-06-13 34 views
9

Tôi biết giải pháp về cách thay đổi nó theo chương trình tuy nhiên tôi muốn đặt văn bản trong XML. Làm thế nào để bạn làm điều đó? Tôi đã xem xét ở đây: http://developer.android.com/reference/android/widget/TabHost.html nhưng không tìm thấy giải pháp nào.TabHost - cách thay đổi văn bản tab trong XML

+0

Đã thực sự hoạt động chưa? Tôi nhận được cùng một vấn đề như những người khác. Bạn có phải làm thêm mã java cho nó không? –

Trả lời

9

Làm thế nào về ....

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TabHost 
     android:id="@android:id/tabhost" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 

       <TextView 
        android:tag="tab0" 
        android:text="Tab 1" 
        android:background="@android:drawable/btn_star_big_on" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        /> 
       <TextView 
        android:tag="tab1" 
        android:text="Tab 2" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        /> 
       <TextView 
        android:tag="tab2" 
        android:text="Tab 3" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        /> 

      </TabWidget> 

      <FrameLayout 
       android:id="@android:id/tabcontent" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

       <TextView 
        android:text="Hallo1" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" /> 
       <TextView 
        android:text="Hallo2" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" /> 
       <TextView 
        android:text="Hallo3" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" /> 

      </FrameLayout> 
     </LinearLayout> 
    </TabHost> 

</RelativeLayout> 

Bằng cách này nó sẽ trông như sau:

TabHost

Kiểm tra các mẫu tab hoàn chỉnh here.

Hy vọng điều này sẽ giúp .... Chúc mừng!

+1

điều này không hiệu quả đối với tôi ... – Supuhstar

+0

@Supuhstar: bạn có thể giải thích lý do tại sao hoặc lỗi nào bạn nhận được? – Trinimon

+5

không có lỗi, chỉ ... hoàn toàn không có điều này làm việc. 'TextView' xuất hiện ở bên trái các tab trong bản xem trước và không có tab nào xuất hiện khi chạy trên thiết bị thực. Không có chức năng nào đạt được và các phân đoạn xuất hiện trên đỉnh khác nhau – Supuhstar

1

Bạn luôn có thể chuyển sang @ + id/tab1 và thay đổi thành bất kỳ thứ gì bạn muốn tab được gọi. Vì vậy, nếu bạn muốn nó được gọi là "Giới thiệu" chỉ cần thay đổi nó thành @ + id/Giới thiệu về bố cục tuyến tính cho tab cụ thể.

+0

Câu hỏi đặt ra là về XML. Công thức bạn cung cấp cho truy vấn xpath? Nếu vậy, xin vui lòng cho một ví dụ, tất cả mọi người có thể không đọc xpath trôi chảy. –

+2

i18n thì sao? – gattsbr

+0

Khá muộn vào ngày này, nhưng jorgensen đã nói về ID tab, theo mặc định, TabHost sử dụng ID làm nhãn tab. Nhưng như @gattsbr đã chỉ ra, giải pháp đó chỉ có thể sử dụng được nếu bạn không sử dụng các tệp dịch chuỗi – STremblay

Các vấn đề liên quan