當屏幕大小更改時,網格項目的寬度將會更改。 我需要將網格項目的高度設置爲網格項目寬度的兩倍。 也就是說,如果網格的寬度item=25dp
高度必須是50dp
。將gridView項目的高度設置爲寬度的兩倍
這是我的適配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView no=new TextView(context);
no.setText(position+"");
// I need to set double of width instead of 150
no.setLayoutParams(new FrameLayout.LayoutParams(android.widget.FrameLayout.LayoutParams.FILL_PARENT,150));
}
更新.... 我的完整getView
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos=position;
View layout=null;
itemWidth=gridView.getColumnWidth();
layout=layout.inflate(context, R.layout.exam_grid_item, null);
TextView examName=(TextView) layout.findViewById(R.id.examNameTextView);
TextView examStatus=(TextView) layout.findViewById(R.id.textViewExamStatus);
LinearLayout itemContainer=(LinearLayout)layout.findViewById(R.id.itemContainar);
itemContainer.setLayoutParams(new FrameLayout.LayoutParams(android.widget.FrameLayout.LayoutParams.WRAP_CONTENT,itemWidth*2));
ImageView statusImage=(ImageView)layout.findViewById(R.id.examStatusImageView);
examName.setText("exam name"+itemHeight+"\n"+itemWidth);
statusImage.setImageResource(R.drawable.tic);
examStatus.setText("Attended");
return layout;
}
謝謝korrekorre,但那不太好。 –
@JITHINGOPAL你可以用你的整個getView()來更新你的問題嗎?我不確定你是否返回了textview,或者它是否位於某種包裝中。我正在使用上面的代碼,它正在工作。所以也許我理解這個問題是錯誤的。但更多的代碼會有所幫助。 – korrekorre
它不是確切的寬度是返回。它的像素,我試圖直接將其轉換爲DP也,但不會工作 –