【问题标题】:Image over alertdialog - android警报对话框上的图像 - android
【发布时间】:2017-09-14 15:45:38
【问题描述】:

如何在警报对话框中显示 fab? 这是我尝试过的代码

final Dialog dialog = new Dialog(MainActivity.this);
        dialog.setContentView(R.layout.custom_dialog);
        dialog.show();

custom_dialog.xml

  <RelativeLayout
    .... />

    <CardView
    ..
    />

    <android.support.design.widget.FloatingActionButton
    ..
     app:layout_anchor="@id/ll_cardView"
     app:layout_anchorGravity="center|top" 
    />

    </RelativeLayout>

【问题讨论】:

  • 什么意思?你说图像,但你的 xml 有一个 FAB

标签: android android-relativelayout android-custom-view android-alertdialog


【解决方案1】:

这是 MainActivity(或任何你拥有的)

public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            showOnClickProfileDialog();
        }


        private void showOnClickProfileDialog() {
            AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
            View alertView = getLayoutInflater().inflate(R.layout.alert_dialog_view, null);
            //Set the view
            alert.setView(alertView);
            //Show alert
            final AlertDialog alertDialog = alert.show();
            //Can not close the alert by touching outside.
            alertDialog.setCancelable(false);
            alertDialog.setCanceledOnTouchOutside(false);
            alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

        }
    }

这是 alert_dialog_view

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/white_radius_background"
            android:paddingBottom="150dp"
            android:layout_marginTop="150dp"
            android:layout_marginRight="15dp"
            android:layout_marginLeft="15dp"
            android:id="@+id/relativeLayout">

        </RelativeLayout>

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_marginTop="-50dp"
            android:src="@drawable/profile_picture"
            android:layout_alignTop="@+id/relativeLayout"
            android:layout_centerHorizontal="true" />

    </RelativeLayout>
</RelativeLayout>

这是白色半径背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
        android:color="@color/colorWhite50"/>
    <corners
        android:radius="5dp" />
    <padding
        android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp" />
</shape>

这就是解决办法

您将不得不调整图像以使其变圆...但我认为这会给您带来想法。

【讨论】:

  • 你明白了。快乐编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
相关资源
最近更新 更多