أحاول إنشاء عنصر تحكم قابل لإعادة الاستخدام يمكنني فقط إضافة أي مكان يعجبني مع عناصر التحكم الموجودة بالفعل ، لذا لا أحتاج إلى سمات ، لا أحتاج إلى إضافتها.
أريد فقط أن يظهر عنصر التحكم المحرر المرئي عندما أسحب "العرض المخصص" إلى التصميم.
لدي بسيطة view_textseek.xml كمثال على التخطيط ، لا أريد إعادة إنشائها في كل مرة أريد "نصًا و SeekBar" في حالة استخدامه في 3 أماكن مختلفة (على سبيل المثال: ColorPicker لاحقًا). أو مجرد تحكم مع كل من "TextView" و "SeekBar"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/view_textseek_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@string/view_textseek_text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RelativeLayout
android:id="@+id/view_textseek_container_seekbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/view_textseek_text"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="5dp" >
<SeekBar
android:id="@+id/view_textseek_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:max="255"
android:progress="0" />
</RelativeLayout>
</RelativeLayout>
وهذا في الأساس صفي:
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.RelativeLayout;
public class TextSeekView extends RelativeLayout
{
public TextSeekView(Context context) { super(context); init(context); }
public TextSeekView(Context context, AttributeSet attrs) { super(context, attrs); init(context); }
public TextSeekView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); }
protected void init(Context context)
{
if (!isInEditMode())
{
LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(R.layout.view_textseek, this, true);
}
}
}
كما ترون ، أريد فقط "جمع" عناصر تحكم متعددة موجودة بالفعل ولدي "عرض" واحد أو "تحكم" للتعامل معها. لا يظهر في المحرر.
أم أن هذا بسبب نوع قديم من الأخطاء الغبية التي يتعين عليك إعادة تشغيل بيئتك من أجل تحميل طرق العرض "المخصصة" بشكل صحيح؟
ولا أحتاج إلى سمات خاصة على وجهات نظراتي الأخرى ، لا شيء على الإطلاق وأريد فقط أن أكون قادرًا على إظهار هذا التصميم مرارًا وتكرارًا عند إضافته أو أي تصميم آخر.
مثل C#، أضف 3 مربعات نصية إلى عنصر تحكم فقط لأنك تستخدم 3 مربعات نصية في كل مرة. ثم ، اسحب هذا التحكم في النموذج كلما أردت 3 مربعات نصية - لا شيء أكثر من ذلك!