2010-12-05 21 views
8

मैं में एक कस्टम सूची आइटम और एंड्रॉयड सूची दृश्य बना रहा हूं पर छोड़ दिया, छवि पर TextView। यह बहुत आसान है, इसमें बाईं ओर एक टेक्स्टव्यू और दाईं ओर एक छवि है। छवि को सभी तरह से सही तरीके से संरेखित करना चाहिए, और पाठ दृश्य को बाईं ओर सभी जगह लेनी चाहिए। समस्या यह है कि, मैं छवि को दिखाने के लिए प्राप्त कर सकता हूं, लेकिन यह बाएं धक्का देता है। अगर मैं textview चौड़ाई को fill_parent पर सेट करता हूं, तो छवि गायब हो जाती है। यहां मेरा लेआउट है:एंड्रॉयड सूची आइटम: सही

<?xml version="1.0" encoding="utf-8" ?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" 
       android:layout_width="fill_parent" android:layout_height="50px" android:layout_gravity="center_vertical"> 
    <!-- item --> 
    <TextView android:id="@+id/txtItem" android:gravity="center_vertical" android:textSize="20px" android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/> 

    <!-- disclosure image --> 
    <ImageView android:layout_gravity="right|center_vertical" android:src="@drawable/common_icon_arrow_disclosure" 
       android:layout_width="wrap_content" android:layout_height="wrap_content"/> 
</LinearLayout> 

मैंने एक रिश्तेदार लेआउट भी कोशिश की है, लेकिन वही बात होती है। मैं क्या गलत कर रहा हूं?


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

alt text

मैं पूरे बाईं क्षेत्र को लेने के लिए पाठ क्षेत्र चाहते छवि पर हो सकता है, और: स्पष्टीकरण के लिए, यह क्या मैं पूरा करने के लिए कोशिश कर रहा हूँ है सही, unscaled, लंबवत केंद्रित।

उत्तर

0

सापेक्ष लेआउट आप क्या चाहते है। आपके मामले में fill_parent विशेषता टेक्स्ट दृश्य को स्क्रीन से छवि को धक्का देने का कारण बन रही थी। यदि आप सापेक्ष लेआउट का उपयोग करते हैं और लेआउट_toLeft का उपयोग करने के लिए टेक्स्ट व्यू सेट करते हैं तो इसे काम करना चाहिए।

यहाँ एक त्वरित उदाहरण मुझे लगता है कि (मैं इसे बाहर का परीक्षण नहीं किया है और यह स्मृति से है, लेकिन विचार है) काम करेंगे है ...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="50px" 
       android:layout_gravity="center_vertical"> 
    <ImageView android:id="@+id/img" 
      android:layout_gravity="right|center_vertical" 
      android:src="@drawable/common_icon_arrow_disclosure" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/txtItem" 
      android:gravity="center_vertical" 
      android:textSize="20px" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_toLeftOf="@id/img" /> 
</RelativeLayout> 
+0

कि या तो काम नहीं करता। तीर छवि शोअप, लेकिन पाठ नहीं करता है। भी, तीर (जो वस्तु से कम लंबा है) लंबवत केंद्रित नहीं है, इसके बजाय यह शीर्ष पर गठबंधन है। मेरे पास वास्तव में कुछ समान था, लेकिन इसमें टेक्स्ट छवि के लेआउट_toRight के साथ छवि दृश्य था, लेकिन यह आपके उदाहरण के विपरीत ही था, पाठ दिखाया गया, लेकिन तीर नहीं। –

+0

क्षमा करें कि मेरे पास एक टेस्ट केस लिखने का समय नहीं है, लेकिन कुछ और जो आप कोशिश कर सकते हैं वह * layout_alignParentLeft * * layout_gravity * के बजाय है। मुझे पता है कि मैंने वही किया है जो आप पूछ रहे हैं लेकिन मुझे इसे मेरी परियोजनाओं में नहीं मिल रहा है और मुझे पता है कि यह रिलेवेटिवआउट का उपयोग करता है। शुभकामनाएं और अगर मैं कर सकता हूं तो मैं कल में वापस देखूंगा। –

+1

मैंने imageView पर layout_alignParentRight = "true" का उपयोग किया (मैंने छवि दृश्य और टेक्स्ट व्यू को स्विच किया, क्योंकि छवि दृश्य दाईं ओर है, इसे वास्तव में दूसरा घोषित किया जाना चाहिए)। समस्या दो गुना है; मैं टेक्स्ट व्यू और आईएमजी दृश्य दोनों को दिखाने के लिए प्राप्त कर सकता हूं, लेकिन 1) छवि दृश्य लंबवत केंद्रित नहीं है - जैसा कि मैंने बताया है, छवि वास्तव में पंक्ति ऊंचाई से छोटी है, और 2) छवि दृश्य को गठबंधन नहीं किया गया है ठीक है, इसके बजाय पाठ के अंत के बाद यह सही है। यदि मैं टेक्स्ट दृश्य को लेआउट_विड्थ = "fill_parent" रखने के लिए बदलता हूं, तो छवि दृश्य फिर से गायब हो जाता है। :( –

7

आप (इस तरह बिटमैप drawable उपयोग कर सकते हैं यह भी गोल जोड़ता कोनों):

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <solid android:color="@android:color/white" /> 
      <stroke 
       android:width="2dp" 
       android:color="#adadad" 
      /> 
      <corners android:radius="5dp" /> 
     </shape> 
    </item> 
    <item android:right="5dp" 
     android:top="2dp" 
     android:bottom="2dp"> 
     <bitmap 
      android:src="@drawable/image" 
      android:gravity="right" 
     /> 
    </item> 
</layer-list> 

और अपने TextView की पृष्ठभूमि संपत्ति में इस drawable डाल:

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/right_image" 
    android:text="some text" 
    /> 
+0

धन्यवाद! यह स्पिनर नियंत्रण के लिए कस्टम पृष्ठभूमि और डाउन एरो आइकन सेट करने के लिए भी काम करता है। बस इस तरह परिभाषित एक ड्रॉबल संसाधन पर अपने स्पिनर की पृष्ठभूमि सेट करें और आप सेट हैं। – Red3

1

माता पिता के साथ अपने पाठ वाम संरेखित, और सही करने के लिए छवि की गंभीरता को सेट करें:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="48dp"> 

    <TextView 
    android:id="@+id/team_member_name" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:gravity="center_vertical" 
    android:singleLine="true"/> 

    <ImageView 
    android:id="@+id/team_member_icon" 
    android:layout_alignParentRight="true" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_gravity="right" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp" 
    android:src="@drawable/circle_green"/> 

</RelativeLayout> 
0

यह मेरे लिए काम किया:

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

    <TextView android:id="@+id/date" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:layout_marginRight="10dp" 
    android:textSize="16sp" 
    android:textColor="@color/text_color" 
    android:layout_alignParentLeft="true" 
    android:gravity="center_vertical"/> 

    <ImageView android:id="@+id/imageBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:contentDescription="@string/delete" 
    android:src="@drawable/delete_minus_png" 
    android:layout_alignParentRight="true" /> 

</RelativeLayout> 

लाइन एंड्रॉयड: layout_marginRight = "10dp" चाल किया ।

उम्मीद है कि यह मदद करता है!

0

ऐसा लगता है कि कुछ लेआउट बग या तो है की तरह। TextView fill_parent झंडा है, तो imageView लेआउट से दूर है, भले ही TextView सामग्री काफी छोटा कर रहे हैं पुश किया जाएगा।

22

आप, साथ ही सीधे इस तरह TextView को drawable जोड़ सकते हैं।

<TextView 
    android:id="@+id/txtItem" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:drawableRight="@drawable/common_icon_arrow_disclosure" 
    android:gravity="center_vertical" 
    android:textSize="20px" /> 
+0

सबसे सटीक और सरल उत्तर – ElYeante

+0

यह स्वीकार्य उत्तर होना चाहिए क्योंकि टेक्स्टव्यू स्वचालित रूप से इसके सीमाओं के निकट मिश्रित यौगिक सेट कर देगा। –

+0

लेकिन हम केवल ड्रॉइंग छवि पर क्लिक पर कार्रवाई कैसे कर सकते हैं? पूरा पाठ नहीं ?? –

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