Android: مشكلة التقدير
-
19-09-2019 - |
سؤال
لقد كان لدي عدد من المشاكل مع التمرير. حاولت مؤخرا إنشاء محتوى LinearView يتجاوز حجم الشاشة، لذا قمت بإنشاء التخطيط الجديد مع ScrollView عنصر الأصل وتعيين عرضه وارتفاعه إلى القيم المخصصة (يجب أن يظهر التخطيط كمرض حوار - لا تملأ الشاشة بأكملها).
عندما يتم تحديد العنصر، يبدو أن الحدود الحمراء تعني مستطيل تخطيط التنظيف المحدد مسبقا ووضع layoutheight وهو موافق. ثم وضعت داخل LinearView وتعيين القيم Layoutwidth و layoutheight إلى fill_parent.
ثم عندما بدأت في إضافة العناصر إلى LINEARLAYOUT، لفت الحدود (Red LiL) ملفوف العناصر المدرجة، وليس التمرير الأم بأكمله.
لذلك عندما تجاوز محتوى LINEARLAYOUT (طفل التمرير) حجم التمرير الأم والتمرير الذي لم يظهر التمرير والعناصر السفلية غير مرئية ببساطة.
على أي حال .. في هذه الحالة كان محتوى XML واسع النطاق للغاية لنشر السؤال هنا والآن أحصل على نفس المشكلة مع المثال الأكثر بسيطة.
يهدف الجزء التالي من التخطيط إلى أن يكون EDITTEXT قابل للتمرير (في حالة تجاوز إدخال المستخدم الحجم الأساسي للقطعة). أردت تعيين ارتفاع EDITTEXT إلى 120 بكسل، لذلك قمت بتعيين ارتفاع ScrollView الوالد إلى 120 بكسل والطفل EDITTEXT لملء SPARENT. مرة أخرى في هذه الحالة، لا يقوم Edittext بملء منطقة التقدير بالكامل ولكن خط واحد:
<ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>
هل يعرف أحد كيفية إعادة تشكيل المحتوى أعلاه حتى يقوم EDITTEXT بملء عنصر التحكم الأصل وبالتعرف على إدخال المستخدم يتجاوز حجم عنصر التحكم يظهر التمرير؟
شكرا لك!
يحرر:
فيما يلي Screenshots من التخطيط
إزالة رابط imageshack الميت
إزالة رابط imageshack الميت
المحلول
يجب أن يكون Edittext الخاص بك ارتفاع wrap_content
. fill_parent
ليس له معنى في ScrollView
. وبعد إذا كنت تريد EditText
لملء الخاص بك ScrollView
عندما يكون المحتوى أصغر من ScrollView
, ، استعمال android:fillViewport="true"
على ال ScrollView
.
نصائح أخرى
نعم، كما قال رومان، يحتاج التخلص إلى التحرير والسرد التالية.
- ل scrollview.
android:fillViewport="true"
- للطفل التمرير
android:layout_height="wrap_content"