Ich möchte eine dynamische Gridview programmaticaly erstellen. Alle Dinge sehen gut aus. Der Rand für jede Zelle wird jedoch nicht angezeigt. Bitte helfen Sie.Create GridView mit Rand für jede Zelle programmgesteuert
PagerAdapter:
@Override
public Object instantiateItem(ViewGroup container, int position) {
Calendar viewData = getData(position);
GridView gridView = new GridView(mContext);
gridView.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
gridAdapter = new GridAdapter(mContext, viewData);
gridView.setNumColumns(4);
gridView.setAdapter(gridAdapter);
container.addView(view);
return gridView;
}
GridAdapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(mContext);
ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.cal_single_cell, parent, false);
layout.setLayoutParams(new GridView.LayoutParams(2, 2));
TextView lblDisplay = (TextView) layout.findViewById(R.id.lbl_cell_name);
lblDisplay.setText(getDisplayText(position));
if(CalendarConverter.dateCompare(getData(position), Calendar.getInstance(), VIEW_LEVEL) == 0){
layout.setBackgroundColor(ContextCompat.getColor(mContext, R.color.backgorund_current_cell));
}
return layout;
}
Und mein cal_single_cell.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content" android:theme="@style/CalendarSingleCell">
<TextView
android:id="@+id/lbl_cell_name"
android:text="Jan"
android:textSize="18dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="64dp"
android:gravity="center" />
</LinearLayout>
view display result on google drive
Hallo @ NguyenDang, antwortete ich auf Ihr Problem, aber keine Antwort, keine Informationen, dass meine Antwort Ihnen geholfen oder nicht. Wenn meine Antwort hilft, dann stellen Sie bitte die richtige Antwort ein. Vielen Dank. –
Hallo Maciej Sikora, Es funktioniert immer noch nicht für mich, wenn ich sage: ViewGroup Layout = (ViewGroup) inflater.inflate (R.layout.cal_single_cell, Eltern, falsch); layout.setLayoutParams (neue GridView.LayoutParams (2, 2)); Ich habe eine weiße Seite. Und ich sehe ViewHolder ist ein wirklich gut für die Leistung. Vielen Dank. –
Einfügen Ihr aktueller Code, ich werde Ihnen helfen, sehe ich im Kommentar, dass Sie es die ganze Zeit falsch machen. –