Я пытаюсь создать повторный элемент управления, который я могу просто добавить в любое время, когда мне нравится, с уже существующими элементами управления, поэтому мне не нужны атрибуты, не нужно добавлять.
Я просто хочу, чтобы элемент управления отобразил мой визуальный редактор, когда я перетаскиваю «пользовательский вид» в макет.
У меня просто view_textseek.xml В качестве примера макета, который я не хочу воссоздать каждый раз, когда я хочу «текст и поиск», на случай, если я использую его в 3 разных местах (например: цветовой писатель позже). Или просто управление как с «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 текстовых поля - ничего больше для этого!