2016-01-26 15 views
8

फ़्रेमलेआउट में android:foreground, android:foregroundGravity और android:measureAllChildren विशेषताएँ हैं। मैंने इन विशेषताओं को आजमाया है, लेकिन यह नहीं कर सका कि वे लेआउट की उपस्थिति को कैसे प्रभावित करते हैं या वे कैसे काम करते हैं।फ्रेमलायआउट में 'एंड्रॉइड: फोरग्राउंड' और 'एंड्रॉइड: फोरग्राउंड ग्रेविटी' कैसे दिखता है इसकी उपस्थिति को प्रभावित करते हैं?

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:foreground="@android:color/holo_blue_dark" 
android:foregroundGravity="center" 
android:measureAllChildren="true" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.framelayoutdemo.MainActivity" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@android:drawable/btn_dialog" /> 

</FrameLayout> 

मैंने गुगल किया है, लेकिन इन विशेषताओं के साथ कोई सहायता नहीं मिली। कृपया मुझे एक लिंक प्रदान करें जिसे मैं संदर्भित कर सकता हूं या उदाहरण के साथ मेरी सहायता कर सकता हूं। धन्यवाद अग्रभूमि कि आपके Framelayout जरूरत है, अपने सभी बच्चों को उस संपत्ति की गंभीरता को

android:foregroundGravity अंक की चोटी पर आकर्षित करने के लिए करता है, तो उस संपत्ति एक drawable है

उत्तर

7

android:foreground अंक। इसका मतलब है कि यदि आप उपयोग कर रहे हैं

android:foreground="@android:drawable/bottom_bar" 

फिर अपने drawable अपने सभी बच्चों के ऊपर बनाए है और यह Framelayout

android:measureAllChildren : के केंद्र है कि क्या सभी बच्चों या बस में उन लोगों को मापने के लिए निर्धारित होती में स्थित है मापने पर VISIBLE या INVISIBLE राज्य। झूठी के लिए डिफ़ॉल्ट। इसका मतलब है, यदि यह गलत पर सेट है, तो GONE स्थिति के सभी तत्वों को ध्यान में नहीं रखा जाता है जब Framelayout का माप चरण चारों ओर जा रहा है।

आशा है कि आपके प्रश्न का उत्तर दें।

+0

'एंड्रॉइड के लिए स्पष्टीकरण: अग्रभूमि 'और' एंड्रॉइड: अग्रभूमि गुरुत्वाकर्षण' पी है मिटाना, लेकिन मुझे नहीं मिला कि 'एंड्रॉइड का उपयोग कैसे करें: मापअले बच्चे:', या क्यों उपयोग करें। यदि आप अपने काम के लिए प्रदान कर सकते हैं और उदाहरण दे सकते हैं तो यह एक बड़ी मदद होगी। बहुत बहुत धन्यवाद। – SimplyProgrammer

+0

'एंड्रॉइड: मापअले चिल्ड्रेन 'का निश्चित रूप से इस लेआउट पर कोई प्रभाव नहीं पड़ता है। –

1

अगर मापने वाले को "सत्य" पर सेट किया गया है तो यह फ्रेम लेआउट की वास्तविक चौड़ाई और ऊंचाई दिखाएगा, भले ही दृश्य दृश्यता समाप्त हो गई हो। उदाहरण

<?xml version="1.0" encoding="utf-8"?> 
 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    android:id="@+id/myframe" 
 
    android:orientation="vertical" android:layout_width="wrap_content" 
 
    android:layout_height="wrap_content" 
 
    android:measureAllChildren="true" 
 
    > 
 
    <ImageView 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:visibility="gone" 
 
     android:src="@drawable/ic_launcher"/> 
 

 
</FrameLayout>

के लिए नीचे दिए गए MainActivity.java का कोड है। अगर हम स्क्रीन पर ऊंचाई और चौड़ाई प्रदर्शित करने के लिए टोस्ट का उपयोग करते हैं।

public class MainActivity extends AppCompatActivity { 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.myframe_activity); 
 
     FrameLayout frame=(FrameLayout)findViewById(R.id.frame); 
 
     frame.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); 
 
     int width = frame.getMeasuredWidth(); 
 
     int height = frame.getMeasuredHeight(); 
 
     Toast.makeText(getApplicationContext(),"width="+width+" height="+height,Toast.LENGTH_SHORT).show(); 
 

 
    } 
 

 
}

अगर हम एम्यूलेटर में अनुप्रयोग चलाने टोस्ट संदेश के रूप में उत्पादन इस तरह होगा: चौड़ाई = 72 ऊंचाई = 72

अब अगर हम बदलने माप के मूल्य सभी बच्चे को झूठी तो टोस्ट संदेश आउटपुट फ्रेम लेआउट चौड़ाई और ऊंचाई होगी: चौड़ाई = 0 ऊंचाई = 0

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