【发布时间】:2014-04-20 15:42:36
【问题描述】:
我想把这个设计放在 mi xml 中。首先是一个标题和一张图片,然后是多行以显示有关照片的信息。我的问题是,当我选择第一行时,我将所有内容放入 RelativeLayout 中,我选择了照片、标题和第一行。因此,我必须在两个 xml 中放入主要元素(照片和标题),在其他 xml 中放入所有行。如何在 Listview 中添加两个 xml?我不知道我该怎么做。
我无法发布图片,因此结构将是:
(列表视图中的一项) 1)标题和照片不要重复 2) ROWS - 不止一行
这就像在列表视图的一行中放置一个标题。因为我想在每张照片中放置 cmets,而且每张照片可能不止一个。
我所有的 xml 都在同一个 xml 中,但是使用这种格式时,我在单击一行时遇到了问题。
照片和用户详细信息只能显示一次,并且行取决于每张照片,有超过一行的照片。因此我认为最好的选择是做两个 xml 文件并从 java 代码中膨胀它,但我不知道这样做。如果有人有其他最佳选择将被接受。
我的 getView 代码如下:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
Object repeat = MyArrList.get(position).get("Repeat");
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.activity_column, null);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView.findViewById(R.id.ColImgPath);
//Userdetails
holder.tvU = (TextView) convertView.findViewById(R.id.tvU);
holder.tvUN = (TextView) convertView.findViewById(R.id.tvUN);
holder.ivProfilePhoto = (ImageView) convertView.findViewById(R.id.profilephoto);
//Accessory details
holder.tvN = (TextView) convertView.findViewById(R.id.tvN);
holder.tvB = (TextView) convertView.findViewById(R.id.tvB);
holder.tvP = (TextView) convertView.findViewById(R.id.tvP);
holder.tvS = (TextView) convertView.findViewById(R.id.tvS);
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
holder.imageView.setPadding(5, 5, 5, 5);
holder.imageView.setRotation(90);
if(repeat.equals("1")){
holder.imageView.setVisibility(View.VISIBLE);
holder.tvU.setVisibility(View.VISIBLE);
holder.tvUN.setVisibility(View.VISIBLE);
holder.tvU.setText(MyArrList.get(position).get("U").toString());
holder.tvUN.setText(MyArrList.get(position).get("UN").toString());
}
else {
//If the photo_id is repeated these params are not shown
holder.tvU.setVisibility(View.GONE);
holder.tvUN.setVisibility(View.GONE);
holder.imageView.setVisibility(View.GONE);
}
try {
Bitmap bmp = ((Bitmap) MyArrList.get(position).get("ImageThumBitmap"));
Bitmap photobitmap1 = Bitmap.createScaledBitmap(bmp, width/2, height/2, true);
holder.imageView.setImageBitmap((Bitmap) MyArrList.get(position).get("Photo"));
} catch (Exception e) {
// When Error
holder.imageView.setImageResource(android.R.drawable.ic_menu_report_image);
}
holder.tvN.setPadding(20, 0, 0, 0);
holder.tvN.setText(MyArrList.get(position).get("N").toString());
holder.tvB.setPadding(20, 0, 0, 0);
holder.tvBsetText(MyArrList.get(position).get("B").toString());
holder.tvP.setPadding(20, 0, 0, 0);
holder.tvP.setText(MyArrList.get(position).get("P").toString());
holder.tvS.setPadding(20, 0, 0, 0);
holder.tvS.setText(MyArrList.get(position).get("S").toString());
return convertView;
}
【问题讨论】:
标签: android xml android-listview