2017-03-27 11 views
0

私は卒業試験のためのアプリを作っています。 私は60%のアルファを持つ黒い背景を持つフレームレイアウトを持っています。フレームレイアウトがアプリケーションのバーレイアウトとフローティングボタンと重なっていることをお勧めします。
私が見つけた唯一の他の類似の質問はthis oneですが、私が理解している限り、彼はFrameLayoutを重ねることを望んでいたので、私のプロジェクトでは機能しませんでした。私は必要な小さなテキストがあるシェードとオーバーラップFrameLayoutを使用したAppBarLayout

<android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay"/> 

     <RelativeLayout 
      android:id="@+id/header" 
      android:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:elevation="4dp"> 

      [...] 

     </RelativeLayout> 
</android.support.design.widget.AppBarLayout> 

<android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     app:srcCompat="@drawable/ic_add_white" /> 

アップ上記の相対的なレイアウト内側:

はここで、フローティングボタンでAppBarLayoutです。ここで

が代わりでframeLayoutです:

<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/blackBackground" 
     android:id="@+id/addJobFrame" 
     android:visibility="visible" 
     app:behavior_overlapTop="100dp"> 

     [...] 

</FrameLayout> 

してください、すべてがCoordinatorLayoutの内側にあることに注意してください。

私が得たい効果は右のthis pictureのものです。実際にはフレームレイアウトでは、私は外部のxmlレイアウトを含んでいます。

他の方法は分かりますか?

+0

は、あなたの期待される出力の画像を提供していただけますか?それはあなたが他人から素早く答えを得るのを助けます。 – FAT

+0

@FerdousAhamed picが追加されました – TheRedMan

+0

これはカスタムダイアログです。私の答えを見てください。私は完全な作業コードを追加しました。それがあなたを助けることを願っています。 – FAT

答えて

0

添付の画像によると、カスタムのようですAlartDialog

  1. デザインカスタムダイアログのカスタムレイアウトXML dialog_layout.xml

    は、カスタムダイアログを作成します。
  2. AlertDialog.Builder.setView()メソッドを使用してこのカスタムレイアウトをAlertDialogに設定します。ここで

完全な例です:

dialog_layout.xml

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

    <EditText 
     android:id="@+id/editText_dateStart" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textColor="@color/colorPrimaryDark" 
     android:textColorHint="@color/colorPrimary" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:padding="20dp" 
     android:hint="Start Date" 
     android:inputType="date" /> 

    <EditText 
     android:id="@+id/editText_dateEnd" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textColor="@color/colorPrimaryDark" 
     android:textColorHint="@color/colorPrimary" 
     android:layout_below="@id/editText_dateStart" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:padding="20dp" 
     android:hint="End Date" 
     android:inputType="date" /> 

    <Button 
     android:id="@+id/button_ok" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:layout_marginBottom="15dp" 
     android:text="ACCETTO" 
     android:textColor="#ffffff" 
     android:background="#34ff00" 
     android:layout_below="@id/editText_dateEnd" 
     android:layout_alignParentRight="true"/> 

</RelativeLayout> 

YourActivity.java

AlertDialog.Builder dialogBuilder; 
    AlertDialog dialog; 

    LayoutInflater inflater = activity.getLayoutInflater(); 
    View dialogLayout = inflater.inflate(R.layout.dialog_layout, null); 

    // Views 
    Button button = (Button) dialogLayout.findViewById(R.id.button_ok); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

       // Do something 
      } 
     }); 

    dialogBuilder = new AlertDialog.Builder(activity); 
    dialogBuilder.setView(dialogLayout); 

    dialog = dialogBuilder.create(); 
    dialog.show(); 
関連する問題