2012-05-06 23 views
8

Tôi đang viết một ứng dụng bằng tiếng Hebrew (là rtl). khi tôi đặt tiêu đề cho đoạn hộp thoại xuất hiện ở bên trái. Tôi đã cố gắng hiển thị ở bên phải bằng cách thực hiện:đặt tiêu đề phân đoạn hộp thoại để hiển thị từ bên phải

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 
{ 
    //set's up the title for this dialog fragment 
    getDialog().getWindow().setGravity(Gravity.RIGHT); 
    getDialog().setTitle(R.string.find_Address_text); 

nhưng không ảnh hưởng đến vị trí của sách. làm thế nào tôi có thể đạt được điều này? TNX

+0

Tôi đã sử dụng phương pháp này: http://stackoverflow.com/questions/14439538/how-can-i-change-the-color-of-alertdialog-title-and-the-color-of-the-line- dưới/23278774 # 23278774 –

Trả lời

18

Ẩn tiêu đề mặc định và tạo tiêu đề tùy chỉnh trong bố cục.

Để ẩn tiêu đề mặc định:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setStyle(STYLE_NO_TITLE, 0); // remove title from dialogfragment 
} 

Sau đó, thêm một TextView để đầu bố trí với phong cách ưa thích của bạn:

<TextView 
android:id="@+id/dialog_title" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:gravity="right|center" 
android:text="@string/dialog_title" /> 
+3

+1 cho setStyle (STYLE_NO_TITLE) –

+0

Câu hỏi 2 xu là: Làm cách nào để chủ đề chế độ xem này giống như tiêu đề hộp thoại thực tế? và sử dụng chủ đề điện thoại? –

+0

@Waza_Be Cá nhân tôi hiện đang sử dụng HoloEverywhere cho các ứng dụng của mình để chủ đề tổng thể giống nhau trên các API khác nhau. Khác với điều duy nhất tôi có thể nghĩ đến là có thể bạn có thể tạo một bản sao của tiêu đề xem nếu bạn có thể tìm thấy nó (android.R.something) từ API và sau đó đặt trọng lực. Tôi không biết chắc chắn rằng điều đó là có thể. – Samutz

6

Tôi biết đây là một chủ đề cũ với một câu trả lời. Nhưng đối với những người khác có cùng câu hỏi:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog dlg = super.onCreateDialog(savedInstanceState); 

    dlg.setTitle("Title"); 
    TextView titleTextView = (TextView) dlg.findViewById(android.R.id.title); 
    titleTextView.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); 

    return dlg; 
} 

Bằng cách này, chúng tôi có thanh tiêu đề và chúng tôi không cần tạo một thanh tùy chỉnh.

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