2017-01-05 6 views
0

enter image description here私は画面をフルスクリーンで開く必要がありますが、下部のタブバーの上にする必要があります。下部タブバーの上に全画面でダイアログを設定するにはどうすればよいですか?

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
lp.copyFrom(dialog.getWindow().getAttributes()); 
lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
lp.height = WindowManager.LayoutParams.MATCH_PARENT; 
dialog.show(); 
dialog.getWindow().setAttributes(lp); 

しかし、このコードは私の下のタブバーを非表示に画面全体でダイアログを提供します:次のように

ダイアログが画面全体に表示させるために使用されるコードです。誰でもこのことを助けてくれますか?

クロッピングされた画像に示すように、下部のタブバーの上にダイアログがフルスクリーンで表示されます。

+0

、あなたが完全なダイアログまたは完全なダイアログが、タブの下にしたい - 新しいXML右クリックRESファイル - >新規 - (底部近く)> XMLバー? – Saeid

+0

ここでダイアログを定義しますか?活動や断片で? - トップビュータブとボトムタブのどちらも同じクラス/ビュー/レイアウトにありますか? – Saeid

+0

ダイアログをフラグメントで定義しました。トップビューは同じアクティビティにあります –

答えて

1

[これはあなたが高さをスクリーン与える]のonCreateで

を使用し、これを試してください: -

Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int screenHeight = size.y; 

onResumeで使用[これはあなたにタブバーの高さを与える]

ViewTreeObserver observer = tabBar.getViewTreeObserver(); 
     observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 
       int tabBarHeight= tabBar.getHeight(); 
      tabBar.getViewTreeObserver().removeGlobalOnLayoutListener(
         this); 
      } 
     }); 

今度は、ダイアログの高さを使用して、[screenHeightとtabBarHeightのクラス変数を作成]を使用します: -

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
lp.copyFrom(dialog.getWindow().getAttributes()); 
lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
lp.height = screenHeight -tabBarHeight; 
dialog.show(); 
dialog.getWindow().setAttributes(lp); 
+0

これを試すことができます。それが役立ちます。 –

+0

画面全体にダイアログを表示する必要があるので、これは役に立ちませんが、下部のタブバーを隠すべきではありません。私は私の質問を編集しました。 –

+0

私はあなたの問題を解決することを希望しました。 –

0

ダイアログを完全に制御したい場合は、カスタムダイアログを作成するだけで簡単です。 XMLファイルとメソッドが必要です。カスタムダイアログを使用するアクティビティは以下のとおりです。以下はXMLとそのメソッドのコードです。私は理解していない>レイアウトXMLファイル

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/color_lightGray" 
tools:context="com.example.dwight.pwkeeper.MainActivity"> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="84dp" 
    android:background="@color/color_darkGray" 
    android:minHeight="?attr/actionBarSize"> 

    <ImageView 
     android:id="@+id/imageTB" 
     android:layout_width="70dp" 
     android:layout_height="wrap_content" 
     android:paddingBottom="2dp" 
     android:paddingLeft="2dp" 
     android:paddingRight="2dp" 
     android:paddingTop="4dp" 
     android:src="@drawable/lockgold" /> 

    <TextView 
     android:text="@string/app_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/toolbar" 
     android:layout_alignParentStart="true" 
     android:layout_marginStart="30dp" 
     android:layout_marginBottom="20dp" 
     android:id="@+id/tvMA" 
     android:textStyle="bold" 
     android:textColor="@color/color_White" 
     android:textSize="28sp" /> 

</android.support.v7.widget.Toolbar> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/toolbar" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:id="@+id/RLscreen"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Password" 
     android:layout_marginLeft="100dp" 
     android:layout_marginTop="60dp" 
     android:id="@+id/tvPW" 
     android:textColor="@android:color/black" 
     android:textStyle="bold" 
     android:textSize="26sp"/> 

    <EditText 
     android:id="@+id/etPW" 
     android:layout_width="260dp" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="220dp" 
     android:layout_marginTop="50dp" 
     android:backgroundTint="@color/color_Black" 
     android:cursorVisible="true" 
     android:ems="10" 
     android:gravity="bottom" 
     android:inputType="text" 
     android:textColor="@android:color/black" 
     android:textSize="26sp" 
     android:textStyle="bold" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Confirm Password" 
     android:layout_marginTop="140dp" 
     android:id="@+id/tvCPW" 
     android:textColor="@android:color/black" 
     android:textStyle="bold" 
     android:textSize="26sp"/> 

    <EditText 
     android:id="@+id/etCPW" 
     android:layout_width="260dp" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="220dp" 
     android:layout_marginTop="130dp" 
     android:backgroundTint="@color/color_Black" 
     android:ems="10" 
     android:inputType="text" 
     android:textColor="@android:color/black" 
     android:textSize="26sp" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/btnSave" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="220dp" 
     android:layout_marginTop="220dp" 
     android:text="SAVE" 
     android:textColor="@color/color_lightGray" 
     android:textSize="30sp" 
     android:textStyle="bold" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="220dp" 
     android:layout_marginTop="220dp" 
     android:id="@+id/btnEnter" 
     android:textColor="@color/color_lightGray" 
     android:textStyle="bold" 
     android:textSize="30sp" 
     android:visibility="invisible" 
     android:onClick="onEnter" 
     android:text="ENTER" /> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="false" 
     android:layout_alignParentStart="false" 
     android:layout_marginTop="350dp" 
     android:src="@drawable/pwkeyb600" /> 

</RelativeLayout> 

private void doCustom(){ 
    /* This method uses the custom_dialog.xml file created for greater control over 
     the styling of the Custom Alert Dialog for various screen sizes and to be 
     able to set the text size of the dialog message text 
    */ 

    final Dialog openDialog = new Dialog(context); 
    openDialog.setContentView(R.layout.custom_dialog); 
    Button btnYES = (Button)openDialog.findViewById(R.id.btnYES); 
    Button btnNO = (Button)openDialog.findViewById(R.id.btnNO); 

    // if YES delete Master Password from TABLE_MPW 
    btnYES.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Write your code here to invoke YES event 
      db = helper.getReadableDatabase(); 

      String q = "SELECT * FROM masterPW"; 
      Cursor cursor = db.rawQuery(q,null); 
      // Above query gets TABLE_PW data from Col_IDI 
      // TABLE_PW will only ever have one row of data 

      int rowID = 99; 
      if(cursor.moveToFirst()){ 
       rowID = cursor.getInt(cursor.getColumnIndex(Col_IDI)); 
       str = cursor.getString(cursor.getColumnIndex(Col_MPW)); 
      } 
      cursor.close(); 

      // Line of code below WORKS deletes entire TABLE <===== 
      // Not a recommended way to re-set the master password 
      // db.delete(TABLE_PW, null, null); 

      String num = Integer.toString(rowID); 

      db.delete(TABLE_PW, Col_IDI + " = ?", new String[] { num }); 
      db.close(); 
      openDialog.dismiss(); 

      Intent intentYY = new Intent(DetailsActivity.this, MainActivity.class); 
      startActivity(intentYY); 

      Toast.makeText(getApplicationContext(), "Change the Password", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    btnNO.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      openDialog.dismiss(); 

      Intent intent = new Intent(DetailsActivity.this, ListActivity.class); 
      startActivity(intent); 

      Toast.makeText(getApplicationContext(), "Password NOT Changed", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    openDialog.show(); 
} 
関連する問題