2016-07-27 2 views
0

私は動的に警告ダイアログを作成しますが、ダイアログビューの上端とダイアログレイアウトの余白の間にスペースがあることを除いては大丈夫です。写真がより明確になることを確認してください。私は、ビューを膨らませる際にアンドロイドのカスタムダイアログビューがダイアログレイアウトに収まらない

dialog layout margin problem

いくつかの問題はありますか?私はちょうどそれをgoogle、しかし私は手がかりを見つけることができません。レイアウトを変更してください。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/white" 
    android:orientation="vertical"> 
    <TextView 
     android:id="@+id/dialog_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" 
     android:textSize="20sp" 
     android:background="@color/light_blue" 
     android:gravity="center" 
     android:paddingLeft="15sp" 
     android:paddingRight="15sp" 
     android:paddingTop="5sp" 
     android:paddingBottom="5sp" 
     android:textColor="@color/white" 
     /> 
    <TextView 
     android:id="@+id/dialog_msg" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="@string/hello" 
     android:textSize="17sp" 
     android:paddingTop="15sp" 
     android:paddingBottom="10sp" 
     android:textColor="@color/black" 
     /> 
    <Button 
     android:id="@+id/dialog_button" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_centerInParent="true" 
     android:text="@string/Ok" 
     android:textColor="@color/light_blue" 
     android:textSize="18sp" 
     android:background="@color/white" 
     /> 
</LinearLayout> 

を以下のよう

dialog.xmlであり、コードは、私は、ダイナミックwrap_contentからmatch_parentにダイアログ

private AlertDialog createDialog(String title, String msg){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    //AlertDialog dialog = builder.create(); 

    LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService 
     (Context.LAYOUT_INFLATER_SERVICE); 
    View dialogView = inflater.inflate(R.layout.dialog, null); 
    ((TextView)dialogView.findViewById(R.id.dialog_title)).setText(title); 
    ((TextView)dialogView.findViewById(R.id.dialog_msg)).setText(msg); 
    builder.setView(dialogView); 
    final AlertDialog dialog = builder.create(); 
    ((Button)dialogView.findViewById(R.id.dialog_button)).setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      dialog.dismiss(); 
     } 
    }); 
    return dialog; 
} 
+1

あなたのコードが正常に動作していることを確認しました。テーマ設定に問題があるかもしれません。 –

答えて

1

変更あなたのLinearLayoutの幅と高さを作成してみてください。

また、あなたの方法

+0

それはまだ鳴っていない。私はfill_parentを試しましたが、失敗しました。 –

+0

@ JasperHsieh私の更新された答えを試してください – SripadRaj

+0

@ SripadRaj場所dialog.setView(dialogView、0,0,0,0); 最終AlertDialogダイアログ= builder.create();の呼び出し後。ダイアログを空にします。 しかし、私はbuilder.setView(dialogView)を変更しました。ダイアログに。setView(dialogView、0,0,0,0);できます。ありがとう –

0

final AlertDialog dialog = builder.create();を呼び出した後、この

dialog.setView(dialogView,0,0,0,0);を試してみてくださいあなたは、戻りダイアログの前にbuliderを表示するために見逃しています。

builder.show();

関連する問題