设置对话框片段标题以从右侧显示

ofe*_*iko 8 android dialog titlebar android-layout

我正在用希伯来语写一个应用程序(这是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);
Run Code Online (Sandbox Code Playgroud)

但它不会影响标题的位置.我怎么能实现这个目标?TNX

Sam*_*utz 18

隐藏默认标题并在布局中创建自定义标题.

隐藏默认标题:

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

然后使用您首选的样式将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" />
Run Code Online (Sandbox Code Playgroud)


Ali*_*jad 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;
}
Run Code Online (Sandbox Code Playgroud)

这样我们就有标题栏,我们不需要自定义标题栏.