2012-04-25 9 views
9

मैं एंड्रॉइड 3.1 विकसित कर रहा हूं। और आवेदन के ऊपर।यह सापेक्ष लयआउट लेआउट या इसके लीनियरलाउट पेरेंट बेकार है

एक गतिविधि पर मैं गतिशील रूप से अपना लेआउट उत्पन्न करता हूं। मैं formdetail.xml उपयोग कर रहा हूँ contentView के रूप में:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.formdetail); 

    Bundle extras = getIntent().getExtras(); 
    if (extras != null) 
    { 
     currentFormId = extras.getString("FormId"); 
    } 
} 

formdetail.xml:

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

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 
     <Button 
      android:id="@+id/downloadFormsButton" 
      android:enabled="false" 
      android:layout_alignParentLeft="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      android:text="@string/download_forms_button" /> 
     <TextView 
      android:id="@+id/formErrorMsg" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentBottom="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="10dp" 
      android:textSize="16dp" > 
     </TextView> 
    </RelativeLayout> 

</LinearLayout> 

downloadFormsButton और formErrorMsg रूप में हमेशा होना चाहिए।

लेकिन उस xml का उपयोग कर मैं इस चेतावनी मिलती है:

This RelativeLayout layout or its LinearLayout parent is useless

मैं LinearLayout जरूरत TableLayouts प्रोग्राम के रूप में जोड़ने के लिए।

मैं इस चेतावनी को कैसे हल कर सकता हूं?

+1

मुझे लगता है कि आपके माता-पिता लेआउट रैप केवल एक ही बच्चा है और आप – Borys

उत्तर

7

आप या तो इसे अनदेखा करते हैं या अपनी परियोजना पर राइट क्लिक करते हैं। Build Path->Configure Build Path... पर क्लिक करें। Android Lint Preferences के तहत UselessParent के लिए देखो और Ignore All पर अनदेखा करने या क्लिक करने के लिए इसकी गंभीरता सेट करें।

संपादित करें:

मैं वह अंतिम भाग वापस लेता हूं। मुझे लगता है कि Ignore All सभी लिंट चेतावनियों और त्रुटियों को मिटा देगा।

+0

ग्रहण जूनो में LinearLayout माता पिता को निकाल कर अपने लेआउट अनुकूलन कर सकते हैं इस मेनू आप में पढ़ सकते हैं के रूप में अपने प्रोजेक्ट के गुण> Android Lint पसंद – GMBrian

1

यह lint से सिर्फ एक चेतावनी है। Lint नहीं जानता कि आप बाद में इस लेआउट में विचार जोड़ देंगे और यह आपको चेतावनी देगा कि आपने एक अनावश्यक अतिरिक्त दृश्य जोड़ा है (अपनी लेआउट गहराई को बढ़ा रहा है)।

आपको केवल चेतावनी को अनदेखा करना चाहिए (यदि यह वास्तव में आपको परेशान करता है तो how to remove warnings पर lint से एक लिंक है)।

12

लिंट इसकी चेतावनी में सही है, आपका लाइनरलाइट कुछ भी उपयोगी नहीं कर रहा है, क्योंकि इसका एकमात्र बच्चा एक सापेक्ष लयआउट है। LinearLayout को हटाएं:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/detailLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button android:id="@+id/downloadFormsButton" 
     android:enabled="false" 
     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:text="@string/download_forms_button" /> 
<TextView 
     android:id="@+id/formErrorMsg" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:textSize="16dp" /> 
</RelativeLayout> 
+0

में स्थित है मेरी प्रश्न, मुझे प्रोग्रामलेटिक रूप से TableLayouts जोड़ने के लिए एक LinearLayout की आवश्यकता है। – VansFannel

+2

तो आप उन्हें अपने रिलेवेटिवआउट में जोड़ सकते हैं ... किसी भी तरह से मैं केवल लिंट चेतावनी – CSmith

2

मुझे अपने ऐप लेआउट के साथ भी यही समस्या थी।

मुझे नहीं पता कि यह कैसे और सही तरीका है या नहीं, लेकिन यह दोनों लेआउट में पृष्ठभूमि विशेषता सेट करने के बाद हल हो जाता है।

अब कोई चेतावनी नहीं है और सही काम कर रहा है। उम्मीद है कि यह आपके लिए भी काम करेगा।

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:background="@drawable/bg" 
    android:layout_height="match_parent" > 

     <FrameLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_marginBottom="10dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:background="@drawable/bg2" 
      android:layout_marginTop="10dp" > 

      <ImageView 
       android:id="@+id/img_BookImage" 
       android:layout_width="200dp" 
       android:layout_height="200dp" 
       android:scaleType="fitXY" 
       android:contentDescription="@string/India" 
       android:src="@drawable/india" /> 
     </FrameLayout> 

    </FrameLayout> 
+0

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

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