/ सूची सूची के रूप में सूची दृश्य का विस्तार कैसे करें? - एंड्रॉयड

सूची आइटम के रूप में सूची दृश्य का विस्तार कैसे करें? - एंड्रॉयड

मूल रूप से मैं डिफ़ॉल्ट संपर्क स्क्रीन को फिर से बनाने की कोशिश कर रहा हूं जब आप सूची में जोड़े गए फोन नंबर की "+" बटन पर क्लिक करते हैं।

अभी मेरे पास "+" बटन के रूप में एक ImageView और फोन नंबर की सूची को शामिल करने के लिए एक ListView है। समस्या यह है कि सूची में अधिक आइटम जोड़ने पर ListView doesn "t का विस्तार होता है।

मैं LinearLayout के साथ एक ही रूप का निर्माण कर सकता था लेकिन मैं उन सभी नंबरों को कैसे बचा सकता हूं?

नीचे आइटम का लेआउट है जो कस्टम एडाप्टर के साथ फुलाया जाएगा

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="60px"
android:stretchColumns="1"
android:background="#FFFFFFFF"
android:gravity="center_vertical">
<TableRow>
<Button
android:id="@+id/type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="Home" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
>
<EditText
android:id="@+id/value"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text=""
android:hint="Name"
android:lines="1"
android:textSize="10pt"
android:typeface="sans"
android:textColor="#FF000000"
android:gravity="left"
/>
</RelativeLayout>
<ImageView
android:id="@+id/del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:paddingRight="14dp"
android:src="@android:drawable/ic_delete" />
</TableRow>
</TableLayout>

यह सूची दृश्य भाग है।

<ListView
android:id="@+id/phoneList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFFFF"
android:scrollbars="none" />

यह वास्तव में भ्रामक है: एस। क्या मेरी कोई मदद कर सकता है?

उत्तर:

उत्तर № 1 के लिए 1

आपको एक का उपयोग करना चाहिए ViewStub.

एक ViewStub एक अदृश्य, शून्य आकार का है वह देखेंआलसी के लिए इस्तेमाल किया जा सकता है रनटाइम पर लेआउट संसाधनों को बढ़ाना। जब एक ViewStub दिखाई देता है, या जब फुलाया जाता है (), लेआउट संसाधन बढ़ जाता है।

यहाँ आपके पास कुछ ट्यूटोरियल हैं या आप क्लोन कर सकते हैं Android का git रेपो यह जाँचने के लिए कि उन्होंने यह कैसे किया।


उत्तर № 2 के लिए 1

मैंने एक एनिमेशन क्लास बनाया है, जो मार्जिन को नकारात्मक मूल्यों के लिए एनिमेट करता है, जिससे आइटम गायब हो जाता है।

एनीमेशन इस तरह दिखता है:

public class ExpandAnimation extends Animation {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);

if (interpolatedTime < 1.0f) {

// Calculating the new bottom margin, and setting it
mViewLayoutParams.bottomMargin = mMarginStart
+ (int) ((mMarginEnd - mMarginStart) * interpolatedTime);

// Invalidating the layout, making us seeing the changes we made
mAnimatedView.requestLayout();
}
}
}

मेरे पास अपने ब्लॉग पोस्ट पर इस एनीमेशन के लिए एक संपूर्ण उदाहरण ऐप है: http://udinic.wordpress.com/2011/09/03/expanding-listview-items/


जवाब के लिए 0 № 3

मैंने अपनी लीयरलाइन को बढ़ाते हुए अपनी खुद की कक्षा बनाई और हर बार आइटम जोड़े या हटाए जाने पर इसका आकार पुनर्गणना होता है। मुझे यकीन है कि कोड गंदा है और बहुत सारी यादें लेता है, लेकिन यह अभी के लिए काम करता है।