2012-08-10 16 views
8

मैं गतिशील निम्नलिखित कोडएंड्रॉयड में लेआउट प्रोग्राम बनाएं - मुद्दा

mylayout.java

FrameLayout layout = new FrameLayout(this); 
FrameLayout.LayoutParams layoutparams=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);    
layout.setLayoutParams(layoutparams); 

webview=new WebView(this); 
webview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); 

splashview=new ImageView(this); 
splashview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); 
splashview.setScaleType(ScaleType.FIT_XY); 
splashview.setImageResource(R.drawable.splash); 
splashview.setVisibility(View.INVISIBLE); 

progressbar=new ProgressBar(this); 
FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.MATCH_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 
progressbar.setLayoutParams(params); 
progressbar.setVisibility(View.INVISIBLE);   


layout.addView(webview); 
layout.addView(progressbar); 
layout.addView(splashview); 

setContentView(layout); 

mylayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:gravity="center_vertical|center_horizontal" > 

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
    </WebView> 

<ProgressBar 
    android:id="@+id/progressBar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:visibility="invisible" /> 




    <ImageView 
     android:id="@+id/splashscreen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:contentDescription="@string/myimg" 
     android:scaleType="fitXY" 
     android:src="@drawable/splash" 
     android:visibility="invisible" /> 

</FrameLayout> 

मैं equalent code for the above xml file in java की जरूरत का उपयोग कर FrameLayout बनाने रहा हूँ। मैंने क्या गलती की?

नोट: उपर्युक्त जावा कोड का उपयोग करके, प्रत्येक एक ओवरलैपिंग कर रहा है।

+1

मैंने क्या गलती की? - आपने क्या गलती देखी? –

उत्तर

3

Android Developer - Frame Layout Documentation पढ़ता है:

आम तौर पर, FrameLayout, एक भी बच्चे को देखने के लिए पकड़ करने के लिए इस्तेमाल किया जाना चाहिए, क्योंकि यह एक तरीका है कि बच्चों को एक दूसरे अतिव्यापी बिना अलग स्क्रीन आकार के लिए स्केलेबल है में बच्चे विचारों को व्यवस्थित करने के लिए मुश्किल हो सकता है। हालांकि, आप android:layout_gravity विशेषता का उपयोग करके, प्रत्येक बच्चे को गुरुत्वाकर्षण निर्दिष्ट करके फ़्रेमलेआउट में कई बच्चों को जोड़ सकते हैं और फ्रेमलेआउट के भीतर अपनी स्थिति को नियंत्रित कर सकते हैं।

आपके मामले में, आप एक ही के लिए layout.setForegroundGravity(int) उपयोग कर सकते हैं।

1

जोड़े

layout.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 

या

layout.setGravity(Gravity.CENTER); 

आप लेआउट की गंभीरता को स्थापित करने के लिए भूल गया था।

+0

अगर मैं फ्रेमवर्क लेआउट के लिए उपरोक्त कोड का उपयोग करता हूं, तो एक त्रुटि को "अपरिभाषित विधि" के रूप में दिखा रहा है – Ponmalar

+0

हां, आप सही हैं .... लेकिन विधि सेट है फॉरग्राउंड ग्रेविटी। आपका धन्यावाद। ऊपर उठाना – Ponmalar

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