调整FastScroll警报对话框的大小

时间:2010-08-20 13:44:34

标签: android

我想使用FastScroll作为我的历史记录列表并使用日期作为部分,但是警告对话框(显示联系人中的字母)不会延伸到适合文本的大小(我想在月和日显示)。

如何调整大小?

2 个答案:

答案 0 :(得分:1)

是否可以像在AlertDialog类中使用setView一样简单? (以及对.xml的一些编辑)。首先,我从here获取了setView的信息。

public void setView (View view, int viewSpacingLeft, int viewSpacingTop, int viewSpacingRight, int viewSpacingBottom)

Set the view to display in that dialog, specifying the spacing to appear around that view.    
Parameters:
view    The view to show in the content area of the dialog
viewSpacingLeft Extra space to appear to the left of view
viewSpacingTop  Extra space to appear above view
viewSpacingRight    Extra space to appear to the right of view
viewSpacingBottom   Extra space to appear below view

这里有一些使用setView的SDK示例代码(AlertDialogSamples.java)。

case DIALOG_TEXT_ENTRY:
            // This example shows how to add a custom layout to an AlertDialog
            LayoutInflater factory = LayoutInflater.from(this);
            final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);
            return new AlertDialog.Builder(AlertDialogSamples.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(R.string.alert_dialog_text_entry)
                .setView(textEntryView)
                .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked OK so do some stuff */
                    }
                })
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                        /* User clicked cancel so do some stuff */
                    }
                })
                .create();
        }
        return null;

最后,一些xml文件看起来像是在文本周围添加了边距(alert_dialog_text_entry.xml)。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView 
        android:id="@+id/username_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="@string/alert_dialog_username"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />

希望它有所帮助。

答案 1 :(得分:1)

我的解决方案。 我们禁用内置的Fastscroll功能,并使用this代码进行微小更改。变量mOverlaySize负责部分警报的大小。