Как надуть FrameLayout? - PullRequest
       40

Как надуть FrameLayout?

1 голос
/ 27 октября 2011

У меня линейный макет, и я хочу накачать в него FrameLayout.Вы знаете, как это можно сделать?Является ли это возможным?Я все еще получаю ошибки Не найдено подходящего метода для инфляции

Спасибо

Редактировать: отвечая себе:

LinearLayout ll=(LinearLayout) findViewById(R.id.linear);
final LayoutInflater  inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
FrameLayout frml = (FrameLayout)inflater.inflate(R.layout.frame,null);
frml.setId(10101010);
frml.setBackgroundColor(Color.RED);

ll.addView(frml);

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Чтобы получить экземпляр LayoutInflater , вам необходимо получить его как службу, подобную этой

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

Затем вы можете использовать его, чтобы надуть FrameLayout и добавить его к LinearLayout следующим образом

LinearLayout linearLayout = ... ;
inflater.inflate(R.layout.your_framelayout_file_name, linearLayout, false);

И не забудьте указать ширину и высоту макета для FrameLayout следующим образом

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    .
    .
    .
</FrameLayout>

Для получения дополнительной информации о LayoutInflater посетите эту ссылку

0 голосов
/ 27 октября 2011
LinearLayout parent = ...
LayoutInflater li = LayoutInflater.from(context);
View view = li.inflate(R.layout.my_layout, parent, false);
parent.addView(view);
...