2017-01-19 13 views
0

「閉じる」ボタンが付いた「アプリについて」警告ダイアログを表示するために使用されるAndroidレイアウトがあります。それは、の太字ののタイトルを持ち、アプリケーションのバージョンと開発者の名前です。タイトルの上に非常に目立つマージン/パディングがあり、その空きスペースを削除することができないことを除いて、すべてうまく見えます。 「Androidの警告ダイアログを削除する上部の空きスペース

about dialog window

が、私は多くのタグでandroid:layout_marginTop="-10.0dip"属性を追加しようとしたと同様の問題のためにSO検索しましたが、私のことができます。ここでは

はレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView android:orientation="vertical" android:scrollbars="none" android:layout_width="fill_parent" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="6.0dp" xmlns:android="http://schemas.android.com/apk/res/android"> 

    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center"> 
     <TextView android:textSize="16.0dip" android:textStyle="bold" android:textColor="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginRight="6.0dip" android:layout_marginBottom="10.0dip" android:text="@string/app_name" /> 
    </LinearLayout> 

    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> 
     <TextView android:textSize="14.0dip" android:textColor="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginTop="0.0dip" android:text="@string/version_text" /> 
     <TextView android:textSize="14.0dip" android:textColor="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginTop="0.0dip" android:text="@string/app_version" /> 
    </LinearLayout> 

    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> 
     <TextView android:textSize="14.0dip" android:textColor="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:text="@string/about_developer" /> 
    </LinearLayout> 

    <LinearLayout android:gravity="center" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" xmlns:android="http://schemas.android.com/apk/res/android"> 
     <Button android:id="@id/close_btn" android:layout_width="110.0dip" android:layout_height="44.0dip" android:layout_marginTop="4.0dip" android:layout_marginBottom="4.0dip" android:text="@string/about_close" /> 
    </LinearLayout> 

    </LinearLayout> 
</ScrollView> 

そして、ここではそれが表示するものですそれを見つける。誰かが私にこの問題を解決する方法を教えてくれたら、感謝しています。

答えて

3
あなたは DialogFragmentを使用して、カスタムビューを使用して独自のダイアログを作ってみると、この

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

を設定または多分ちょうどこの

Dialog dialog = new Dialog(theContext); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(yourCustomView); 
dialog.show(); 
のような単純な Dialog、ない AlertDialog使用しようとすることができ

+0

のようなテントを使用して活動を開始。よくやった。 –

+0

あなたの答えを適用しようとしています.Android Studioは "MainActivityは囲むクラスではありません"というアイデアを教えてくれますか?助けてください。 –

+0

編集中!コンテキストを置く! – DevAndroid

0

代わりにRelativeLayoutを使用してください(以下のコードはニーズに合わせて調整する必要がありますが、一般的なレイアウトになります)

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

<TextView 
    android:text="App Name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/textView" /> 

<TextView 
    android:text="Version 1.0" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="29dp" 
    android:id="@+id/textView2" /> 

<TextView 
    android:text="Developed by Name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView2" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="23dp" 
    android:id="@+id/textView3" /> 

<Button 
    android:text="Close" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView3" 
    android:layout_alignLeft="@+id/textView2" 
    android:layout_alignStart="@+id/textView2" 
    android:layout_marginTop="42dp" 
    android:id="@+id/button2" /> 
</RelativeLayout> 

他にも言及したように、ダイアログを使用することもできます。

EDIT:

あなたはDialogFragmentを使用して、代わりにカスタムダイアログを使用して試すことができます。ダイアログを呼び出すには、これを使用する:new CustomDialogFragment().show(getSupportFragmentManager(), "mydialog");

その後DialogFragmentを拡張する新しいクラスを作成し、これに似たものを使用します。

public class DonateDialogFragment extends DialogFragment implements View.OnClickListener 
{ 

private AlertDialog dialog; 

public interface CustomDialogListener { 
    void buttonClicked(); 
} 

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    if (!(activity instanceof CustomDialogListener)) { 
     throw new ClassCastException(activity.toString() + " must implement CustomDialogListener"); 
    } 
} 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder customDialogMain = new AlertDialog.Builder(getActivity()); 
    donateDialogMain.setCancelable(true); 
    LayoutInflater inflater = getActivity().getLayoutInflater(); 

    View view = inflater.inflate(R.layout.--YOUR-CUSTOM-DIALOG-LAYOUT-HERE--, null); 

    view.findViewById(R.id.close_btn).setOnClickListener(this); 

    customDialogMain.setView(view); 

    dialog = customDialogMain.show(); 
    return dialog; 
} 

public void onClick(View v) { 
    // does something very interesting 
    switch (v.getId()) 
    { 
     case R.id.close_btn: 
      ((CustomDialogListener) getActivity()).buttonClicked(); 
      dialog.dismiss(); 
      break; 
    } 
} 

}

+0

私はXMLを調整して試しましたが、問題は依然として続きます。 –

+0

代わりにダイアログを使用する手順が追加されました。 :) –

0

あなたはstyle.xmlに直接このスタイルを使用することができます

<style name="Theme.UserDialog.AppCompat" parent="Theme.AppCompat.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowCloseOnTouchOutside">true</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:minWidth">600dp</item> 
</style> 

あなたに警告ダイアログ

を設定したいアクティビティクラスにこのスタイルを適用します
android:theme="@style/Theme.UserDialog.AppCompat" 

と私は同じ答えを持つ半分の途中だった

Intent activity= new Intent(this, AlertActivity.class); 
startActivity(activity); 
関連する問題