Я пытаюсь накачать R.layout внутри LinearLayout с помощью контейнера id.Макет надувается, как я вижу в Android Studio Layout Inspector, но не отображается в эмуляторе во время работы приложения.
![enter image description here](https://i.stack.imgur.com/Rm8bP.png)
Накачка происходит, когда кнопканажата.Кнопка находится внутри карты.Все карты создаются внутри Адаптера.Я публикую метод getView адаптера.
@Override
public View getView(final int position,View convertView, final ViewGroup parent) {
LayoutInflater inflater = null;
if (convertView == null) {
inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.card_draft, parent, false);
}
Button show = convertView.findViewById(R.id.button);
final LinearLayout container = convertView.findViewById(R.id.container);
final LayoutInflater infl = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
infl.inflate(R.layout.card_text, container,true);
v.setVisibility(View.GONE);
TextView text = (TextView) ((SwipeStack) parent).getTopView().findViewById(R.id.text);
text.setText("dsfsfsf");
}
});
return convertView;
}
, если я переместу эту строку
infl.inflate(R.layout.card_text, container,true);
за пределы OnClickListener (в теле основной функции), он работает нормально.
Я использую эту библиотеку https://github.com/flschweiger/SwipeStack
и этот адаптер
public class SwipeStackAdapter extends ArrayAdapter<Item>{
private List<Item> mData;
private Context ctx;
public SwipeStackAdapter(Context ctx,List<Item> data) {
super(ctx, R.layout.card,data);
this.ctx = ctx;
this.mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Word getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position,View convertView, final ViewGroup parent) {
LayoutInflater inflater = null;
if (convertView == null) {
inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.card_draft, parent, false);
}
Button show = convertView.findViewById(R.id.button);
final LinearLayout container = convertView.findViewById(R.id.container);
final LayoutInflater infl = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
infl.inflate(R.layout.card_text, container,true);
v.setVisibility(View.GONE);
TextView text = (TextView) ((SwipeStack) parent).getTopView().findViewById(R.id.text);
text.setText("dsfsfsf");
}
});
return convertView;
}
}
Почему это произошло?Есть предложения?