В вашем коде есть некоторые ошибки ... используйте это
newc = new CardView(getApplicationContext());
newc.setLayoutParams(new CardView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
newc.setRadius(8);
newc.setCardElevation(10);
tc = new TextView(getApplicationContext());
tc.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
tc.setText("This is dynamic");
newc.addView(tc);
gridLayout.setColumnCount(2);
gridLayout.setOrientation(GridLayout.HORIZONTAL);
gridLayout.addView(newc);
Если вы хотите добавить представление в строку spcifi c и указать столбец c, используйте это
GridLayout.Spec row = GridLayout.spec(0); // Mention row index here
GridLayout.Spec col = GridLayout.spec(0);// Mention column index here
GridLayout.LayoutParams gridP = new GridLayout.LayoutParams(row, col);
В вашем случае вы всегда используете 0,0 для строки и столбца, поэтому в основном происходит то, что представления добавляются в макет сетки, но они перекрываются, и, следовательно, вы не можете их видеть