SORU
7 Mart 2013, PERŞEMBE


Nasıl başlık olmadan bir DialogFragment oluşturmak için?

Yardım mesajları uygulamam hakkında bir DialogFragment yaratıyorum. Her şey tek bir şey dışında gayet iyi çalışıyor...sanırım başlık, kullanmak istemediğim bir şey için ayrılmış DialogFragment gösteren pencerenin üstündeki siyah şerit var.

Bu değişiklik, bir kenara bırakılamayacak kadar azılı bir şekilde benim özel DialogFragment beyaz arka plan kullandığından özellikle acı verici.

Sana daha grafiksel bir şekilde: bunu gösterelim

enter image description here

Şimdi benim DialogFragment için XML kodu aşağıdaki gibidir

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:id="@ id/holding" 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:background="@drawable/dialog_fragment_bg"
        >
        <!-- Usamos un LinearLayout para que la imagen y el texto esten bien alineados -->
        <LinearLayout
            android:id="@ id/confirmationToast" 
            android:orientation="horizontal" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            >

            <TextView android:id="@ id/confirmationToastText" 
            android:layout_width="wrap_content"
            android:layout_height="fill_parent" 
            android:text="@string/help_dialog_fragment"
            android:textColor="#AE0000"
            android:gravity="center_vertical"
            />

        </LinearLayout>
        <LinearLayout
            android:id="@ id/confirmationButtonLL" 
            android:orientation="horizontal" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            android:gravity="center_horizontal"
            >    
            <Button android:id="@ id/confirmationDialogButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_marginBottom="60dp"
                android:background="@drawable/ok_button">
            </Button>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

EDİT: DialogFragment uygulayan sınıf: kodu da Dahil olmak üzere

public class HelpDialog extends DialogFragment {

public HelpDialog(){
    // Empty constructor required for DialogFragment
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    //Inflate the XML view for the help dialog fragment
    View view = inflater.inflate(R.layout.help_dialog_fragment, container);
    TextView text = (TextView)view.findViewById(R.id.confirmationToastText);
    text.setText(Html.fromHtml(getString(R.string.help_dialog_fragment)));
    //get the OK button and add a Listener
    ((Button) view.findViewById(R.id.confirmationDialogButton)).setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
             // When button is clicked, call up to owning activity.
            HelpDialog.this.dismiss();
         }
     });
    return view;
}

}

Ana Faaliyeti oluşturma süreci:

    /**
 * Shows the HelpDialog Fragment
 */
private void showHelpDialog() {
    android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
    HelpDialog helpDialog = new HelpDialog();
    helpDialog.show(fm, "fragment_help");
}

Gerçekten bu cevap, diyalog ile ilgili, burada da 16 ** uyar mı bilmiyorum

Bu nasıl başlık alanı kurtulabilirim?

CEVAP
7 Mart 2013, PERŞEMBE


Eklemek senin içinde bu kod satırı HelpDialog.onCreateView(...) sadece

getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

Bu şekilde açıkça başlık:) olmadan bir pencere elde etmek istiyorsun

EDİT

@DataGraham @Blundell yorumlar aşağıda belirttiği gibi, daha güvenli onCreateView() yerine onCreateDialog() yöntemi adı-az bir pencere istek için ekleyin. Bu şekilde Dialog bir parçası olarak, kullanmadığınız zaman ennoying NPE önlemek

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
  Dialog dialog = super.onCreateDialog(savedInstanceState);

  // request a window without the title
  dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
  return dialog;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012
  • Metheud

    Metheud

    9 EYLÜL 2006