好的,我已经阅读了And Dev网站上的自定义对话框说明 http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog
它显示了如何制作自定义对话框,而不是如何自定义标题!
基本上我的标题太长了,我希望它滚动(如textview)或者更好的还有一个'marquee'效果,我认为它被称为。
或者,如果我无法滚动,请给它更多的空间来包裹更多的线条!
任何想法,我都不抱太大希望,因为它不在android.dev上: - (
答案 0 :(得分:7)
您可以将对话框标题设为多行:
TextView title = (TextView) dialog.findViewById(android.R.id.title);
title.setSingleLine(false);
答案 1 :(得分:6)
Customizig窗口(以及对话框)标题可以通过请求窗口特征CUSTOM_TITLE来完成,这必须在setContentView之前完成。
因此,在您的Dialog / Activity子类onCreate()中,请调用以下内容:
super.onCreate(savedInstance);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); // <- insert this
然后,在你的setContentView 之后,执行以下操作:
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); // <- insert this
布局通常可以包含您想要的任何内容。 用于字幕文本控件。例如这样做:
布局/ custom_title.xml:
<FrameLayout android:id="@+id/FrameLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView android:id="@+id/caption_text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="This is a very very long text that will not fit into a caption regularly, so it will be displayed using marquee..."
android:lines="1"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever"
android:ellipsize="marquee"
></TextView>
</FrameLayout>
由于选取框功能的某些限制,文本视图必须是可聚焦的,并且只有在聚焦时才会滚动(最初应该是这样)。
答案 2 :(得分:0)
我认为RuslanK的组合(用于获取TextView)Thorstenvv(用于使TextView可滚动)的答案是最佳实践。