Android 带有自定义布局的对话框:未完全显示

Android dialog with custom layout: not fully shown

我正在创建一个应用程序,它显示一个带有照片的 GridView 和一些带有照片详细信息(上传者、描述)的 TextView。当用户点击 GridView 项目时,它应该在 TextViews 中显示更大的图片和一些细节(就像在 Facebook 上点击图片时一样)。

这就是我决定使用警报对话框和自定义布局来实现它的原因。布局如下,就是图片右边的一个ImageView和一个TextView。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    tools:context="com.example.handmadecommunity.FullImageActivity" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin" >

        <ImageView
            android:id="@+id/picture"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:contentDescription="@string/contentDescriptor"
            android:maxHeight="500dp"
            android:maxWidth="500dp"
            android:src="@drawable/test" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/picture"
            android:layout_marginLeft="41dp"
            android:layout_marginTop="24dp"
            android:layout_toRightOf="@+id/picture"
            android:ellipsize="marquee"
            android:gravity="left"
            android:scrollHorizontally="true"
            android:singleLine="false"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </RelativeLayout>

</ScrollView>

我按以下方式创建我的警报对话框(只是指出,这是在一个片段中,这就是 getActivity() 的原因)

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View layout = inflater.inflate(R.layout.activity_full_image, null);

TextView description = (TextView) layout.findViewById(R.id.textView1);
description.setText(desc);

alertDialogBuilder.setTitle(title).setView(layout).setCancelable(true);
AlertDialog alert = alertDialogBuilder.create();
alert.show();

我的问题可以显示在这张图片上http://imgur.com/OGQRyse

我是否遗漏了布局或代码中的某些内容?

您的 ImageView 太大,它会将 TextView 推出屏幕,请尝试将其放在 ImageView 下面

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:gravity="left"
        android:scrollHorizontally="true"
        android:singleLine="false"
        android:text="Hello "
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_below="@+id/picture"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />