10

में कस्टम संवाद की ऊंचाई बदलें मैंने एक कस्टम संवाद बनाया है, कोड नीचे है। समस्या यह है कि, संवाद की ऊंचाई wrap_content बन रही है, यानी यह xml में जो ऊंचाई मैं उल्लेख करता हूं उससे स्वतंत्र है। मैंने अन्य प्रश्नों की जांच की है, वे मेरी मदद नहीं करते हैं।डायलॉग फ्रैगमेंट

public class PointsDialogFragment extends DialogFragment{ 

    private static final String TAG = PointsDialogFragment.class.getSimpleName(); 

    public static PointsDialogFragment newInstance(){ 
     PointsDialogFragment pdf = new PointsDialogFragment(); 
     Bundle newBundle = new Bundle(); 
     pdf.setArguments(newBundle); 
     return pdf; 
    } 

    private View mRoot; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     getDialog().requestWindowFeature(STYLE_NO_TITLE); 
     mRoot = inflater.inflate(R.layout.fragment_points_dialog, null); 
     return mRoot; 
    } 
} 

और fragment_points_dialog.xml के लिए एक्सएमएल

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="313dp" 
    android:layout_width="fill_parent" 
    android:background="@color/green_gradient_start" 
> 
    <RelativeLayout 
     android:layout_width="173dp" 
     android:layout_height="242dp" 
     android:background="@drawable/reward_box" 
     android:id="@+id/reward_box" 
     android:layout_alignParentLeft="true" 
    > 
     <TextView 
      android:layout_centerInParent="true" 
      style="@style/WallSectionHeading" 
      android:text="5" 
     /> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="173dp" 
     android:layout_height="250dp" 
     android:background="@drawable/reward_mascot" 
     android:layout_alignParentRight="true" 
    > 
     <LinearLayout 
      android:id="@+id/reward_cloud" 
      android:layout_width="wrap_content" 
      android:layout_height="100dp" 
      android:background="@drawable/reward_cloud" 
      android:layout_alignParentBottom="true" 
     > 
      <TextView 
       android:layout_gravity="center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="You have gained 5 Delight Points" 
       android:textColor="@color/white" 
       android:textStyle="italic" 
       android:paddingLeft="15dp" 
       android:paddingRight="10dp" 
      /> 
     </LinearLayout> 

    </RelativeLayout> 

</RelativeLayout> 

मैं इस तरह संवाद दिखा रहा है ..

PointsDialogFragment pdf = PointsDialogFragment.newInstance(); 
pdf.show(getFragmentManager(), "dialog"); 

मैं एक तरह से पता है कि चाहते हैं मैं की ऊंचाई को बदल सकते हैं संवाद खंड में संवाद के साथ संवाद।

उत्तर

17

मुझे लगता है कि समस्या यह है कि जब आप दृश्य को बढ़ाते हैं, तो आप व्यूपेन्टेंट की आपूर्ति नहीं कर रहे हैं। जब आप उस पैरामीटर की आपूर्ति नहीं करते हैं, तो आपके दृश्य की जड़ में किसी भी "लेआउट_एक्स" पैरामीटर को अनदेखा कर दिया जाएगा, क्योंकि वे मान माता-पिता को प्रदान किए जाते हैं (जो आपकी वर्तमान स्थिति में शून्य है)। यदि आप दूसरे व्यू में पूर्ण लेआउट पैरामीटर को छोड़कर किसी अन्य व्यू ग्रुप में अपना व्यू एक्सएमएल फुलाते या लपेटते हैं तो आप क्या कर सकते हैं।

नमूना कोड: mRoot = inflater.inflate(R.layout.fragment_points_dialog, container, false);

+0

mRoot = inflater.inflate (R.layout.fragment_points_dialog, कंटेनर); क्या यह जवाब सही है ??? – Ads

2

अपने DialogFragment एक्सएमएल में, बजाय LinearLayout एक RelativeLayout का उपयोग करें और wrap_content को यह स्वचालित रूप से देखने का आकार बदलेंगे layout_height सेट का उपयोग कर के।

सुनिश्चित करें कि पैरेंट नीचे संरेखित न करें अन्यथा यह स्क्रीन भर जाएगा।

+0

यह मेरे लिए काम करता है। यह भी सुनिश्चित करें कि कोई भी बच्चा दृश्य ऊंचाई के रूप में match_parent का उपयोग नहीं कर रहा है, इसलिए यह स्क्रीन भर नहीं पाएगा। – mariozawa

संबंधित मुद्दे