2016-03-06 6 views
1

Snippet of my codeКак я могу отобразить пользовательский вид в моем XML-файле?

Как видно из приведенного выше изображения, представление класса объявляется внутри MainActivity, поэтому у него нет файла XML. Я хочу добавить кнопку на этом пользовательском представлении и манипулировать им.

Как я могу отобразить пользовательский вид в xml, если класс View находится внутри класса java, который не расширяет представление?

ответ

1

Я не думаю, что вы можете установить любой другой вид внутри представления. check description, я думаю, только ViewGroup и макеты как LinearLayout, RelativeLayout который простирается ViewGroup может только добавить другие представления с помощью addView(View view),

например, следующим образом

Вы можете создать свой файл макета XML и поместить пользовательский вид в Это.

пример XML-файл, содержащий пользовательский вид

<?xml version="1.0" encoding="utf-8"?> 
<com.example.package.MyView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

код Java А затем раздуть его в представлении.

// Inflate your xml view using layout inflater. 
LayoutInflater inflater = getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

View myView = (MyView) inflater.inflate(R.layout.example, null); 

// now create a container class or map any of it from main_activity.xml layout. 
LinearLayout linear = new LinearLayout(this); 

/* LinearLayout linear = (LinearLayout) findViewById(R.layout.myLayout); */ 

// if you have created it programatically, set its width and height as following 
linear.setLayoutParams(new ViewGroup.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT, // width 
      ViewGroup.LayoutParams.MATCH_PARENT)); // height 

// else mention it in layout xml file. 

linear.removeAllViews(); // clear layout before setting new one. 

linear.addView(myView); // set custom view inside layout. 

Теперь вы можете назначить манипулирование своим myView. если вы все еще хотите добавить кнопку. Создайте кнопку в файле xml и надуйте или создайте программно и добавьте ее в linear.addView(View view);

0

Создайте собственный макет в XML, назначьте ему представление. Затем вы можете добавить представление в другие макеты. Посмотрите на this tutorial для получения более подробной информации о создании пользовательских представлений

Смежные вопросы