8

私はヘブライ語(rtl)でアプリを書いています。ダイアログフラグメントのタイトルを設定すると、左側に表示されます。次のようにして、右に表示しようとしました。

@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);

タイトルの位置には影響しません。どうすればこれを達成できますか? TNX

4

2 に答える 2

18

デフォルトのタイトルを非表示にして、レイアウトでカスタム タイトルを作成します。

デフォルトのタイトルを非表示にするには:

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

次に、TextView を好みのスタイルでレイアウトの上部に追加します。

<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" />
于 2012-06-20T21:47:04.323 に答える
6

私はこれが答えのある古いスレッドであることを知っています。しかし、同じ質問をするかもしれない他の人々のために:

@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;
}

このようにしてタイトル バーができ、カスタム バーを作成する必要はありません。

于 2014-11-11T11:57:37.557 に答える