Я пытаюсь реализовать Расположение карусели (Cover Flow) в моем приложении.Я получил рабочий пример, используя приведенную ниже библиотеку.
реализация 'com.github.moondroid.coverflow: library: 1.0'
Пример ссылки: http://www.devexchanges.info/2015/11/making-carousel-layout-in-android.html
Пока все работает нормально.Но когда я пытаюсь настроить компоновку карусели для работы с событиями кликов для каждого дочернего элемента в XML-файле Inflater.Но это не поддерживает события щелчка на каждом ребенке.Это работает только для общего события клика элемента.
Я потерял 2 дня работы, чтобы попытаться выполнить это.Но это все еще в той же ситуации.
Может кто-нибудь решить мою проблему, чтобы сэкономить время.
Заранее благодарим за помощь.
Класс BaseAdapter:
public class CoverFlowAdapter extends BaseAdapter {
private ArrayList<Game> data;
private AppCompatActivity activity;
public CoverFlowAdapter(AppCompatActivity context, ArrayList<Game> objects) {
this.activity = context;
this.data = objects;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Game getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.item_flow_view, null, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.gameImage.setImageResource(data.get(position).getImageSource());
viewHolder.gameName.setText(data.get(position).getName());
viewHolder.gameName2.setText(data.get(position).getName());
viewHolder.gameName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity, data.get(position).getName(), Toast.LENGTH_SHORT).show();
}
});
viewHolder.gameName2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity, data.get(position).getName() + "Hello", Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
private View.OnClickListener onClickListener(final int position) {
return new View.OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog = new Dialog(activity);
dialog.setContentView(R.layout.dialog_game_info);
dialog.setCancelable(true); // dimiss when touching outside
dialog.setTitle("Game Details");
TextView text = (TextView) dialog.findViewById(R.id.name);
text.setText(getItem(position).getName());
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(getItem(position).getImageSource());
dialog.show();
}
};
}
private static class ViewHolder {
private Button gameName, gameName2;
private ImageView gameImage;
public ViewHolder(View v) {
gameImage = (ImageView) v.findViewById(R.id.image);
gameName = (Button) v.findViewById(R.id.name);
gameName2 = (Button) v.findViewById(R.id.name2);
}
}
}