【问题标题】:set dialog fragment title to display from right将对话框片段标题设置为从右侧显示
【发布时间】:2012-05-15 06:17:02
【问题描述】:

我正在用希伯来语(即 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

【问题讨论】:

标签: android android-layout dialog titlebar


【解决方案1】:

隐藏默认标题并在布局中自定义标题。

隐藏默认标题:

@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" />

【讨论】:

  • 2 美分的问题是:如何将这个视图主题化为一个实际的对话框标题?并使用手机主题?
  • @Waza_Be 就我个人而言,我现在将 HoloEverywhere 用于我的应用程序,以便各种 API 的整体主题相同。除此之外,我唯一能想到的是,如果您可以从 API 中找到它(android.R.something)然后设置重力,您可以制作标题视图的副本。不过我不确定这是否可行。
  • 我添加了 getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);删除标题填充空间
【解决方案2】:

我知道这是一个有答案的旧线程。但是对于可能有相同问题的其他人:

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

这样我们就有了标题栏,我们不需要自定义一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多