我在android中做应用程序。我有一个ListView,每行都有一个包含8个textview的LinearLayout。单击按钮时,我必须调整特定文本视图的宽度。我该怎么办?
代码:
zoomIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String colonnaDaAumentare=cmbAllargaC.getSelectedItem().toString();
int index = 0;
if(colonne!=null && colonne.length>0) //se ho almeno una colonna
{
index = Arrays.asList(colonne).indexOf(colonnaDaAumentare);
dimensioniColonne.set(index,dimensioniColonne.get(index)+50); //aggiungo 50px a quella colonna (selezionata dalla combo
PreparaLayoutGriglia(colonne,dimensioniColonne);
}
}
});
功能PreparaLayoutGriglia:
//PREPARO IL LAYOUT DELLA GRIGLIA
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void PreparaLayoutGriglia(String[] colonne,ArrayList<Integer> dimensioniColonne)
{
layoutHeader.removeAllViews(); //rimuovo tutto ciò che ho nel layout
Drawable colore = getResources().getDrawable(R.drawable.header_layout); //salvo lo stile da applicare alla textview
//se una proprieta dell'allarme non sarà presente, setterò il nuovo layout
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
View v = null;
v = LayoutInflater.from(getBaseContext()).inflate(R.layout.row_layout, null); //layout di riferimento
TextView quadro = (TextView) v.findViewById(R.id.quadro);
TextView codice = (TextView) v.findViewById(R.id.codice);
TextView gruppo = (TextView) v.findViewById(R.id.gruppo);
TextView zona = (TextView) v.findViewById(R.id.zona);
TextView tipo = (TextView) v.findViewById(R.id.tipo);
TextView descrizione = (TextView) v.findViewById(R.id.descrizione);
TextView suggerimento = (TextView) v.findViewById(R.id.suggerimento);
TextView word = (TextView) v.findViewById(R.id.word);
//controllo colonne impostate
LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
//quadro
if (!colonne[0].equals(""))
{
params2.width = dimensioniColonne.get(0);
params2.height = heightHeader;
quadro.setLayoutParams(params2);
quadro.setText(colonne[0]);
quadro.setTextSize(12);
quadro.setBackground(colore);
}
else
{
quadro.setWidth(0);
quadro.setVisibility(View.INVISIBLE);
quadro.setLayoutParams(params);
}
//codice
if (!colonne[1].equals(""))
{
params2.width = dimensioniColonne.get(1);
params2.height = heightHeader;
codice.setLayoutParams(params2);
codice.setText(colonne[1]);
codice.setTextSize(12);
codice.setBackground(colore);
//layoutHeader.addView(codice, params2);
}
else
{
codice.setWidth(0);
codice.setVisibility(View.INVISIBLE);
codice.setLayoutParams(params);
}
//gruppo
if (!colonne[2].equals(""))
{
params2.width = dimensioniColonne.get(2);
params2.height = heightHeader;
gruppo.setLayoutParams(params2);
gruppo.setText(colonne[2]);
gruppo.setTextSize(12);
gruppo.setBackground(colore);
//layoutHeader.addView(gruppo, params2);
}
else
{
gruppo.setWidth(0);
gruppo.setVisibility(View.INVISIBLE);
gruppo.setLayoutParams(params);
}
//zona
if (!colonne[3].equals(""))
{
params2.width = dimensioniColonne.get(3);
params2.height = heightHeader;
zona.setLayoutParams(params2);
zona.setText(colonne[3]);
zona.setTextSize(12);
zona.setBackground(colore);
//layoutHeader.addView(zona, params2);
}
else
{
zona.setWidth(0);
zona.setVisibility(View.INVISIBLE);
zona.setLayoutParams(params);
}
//tipo
if (!colonne[4].equals(""))
{
params2.width = dimensioniColonne.get(4);
params2.height = heightHeader;
tipo.setLayoutParams(params2);
tipo.setText(colonne[4]);
tipo.setTextSize(12);
tipo.setBackground(colore);
//layoutHeader.addView(tipo, params2);
}
else
{
tipo.setWidth(0);
tipo.setVisibility(View.INVISIBLE);
tipo.setLayoutParams(params);
}
//descrizione
if (!colonne[5].equals(""))
{
params2.width = dimensioniColonne.get(5);
params2.height = heightHeader;
descrizione.setLayoutParams(params2);
descrizione.setText(colonne[5]);
descrizione.setTextSize(12);
descrizione.setBackground(colore);
//layoutHeader.addView(descrizione, params2);
}
else
{
descrizione.setWidth(0);
descrizione.setVisibility(View.INVISIBLE);
descrizione.setLayoutParams(params);
}
//suggerimento
if (!colonne[6].equals(""))
{
params2.width = dimensioniColonne.get(6);
params2.height = heightHeader;
suggerimento.setLayoutParams(params2);
suggerimento.setText(colonne[6]);
suggerimento.setTextSize(12);
suggerimento.setBackground(colore);
}
else
{
suggerimento.setWidth(0);
suggerimento.setVisibility(View.INVISIBLE);
suggerimento.setLayoutParams(params);
}
//word
if (!colonne[7].equals(""))
{
params2.width = dimensioniColonne.get(7);
params2.height = heightHeader;
word.setLayoutParams(params2);
word.setText(colonne[7]);
word.setTextSize(12);
word.setBackground(colore);
//layoutHeader.addView(word, params2);
}
else
{
word.setWidth(0);
word.setVisibility(View.INVISIBLE);
word.setLayoutParams(params);
}
LinearLayout.LayoutParams params3 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutHeader.addView(v,params3);
}
单击“zoomIn”按钮时,我将50px添加到textview的维度。 textview的宽度包含在数组中。之后我调用PreparaLayoutGriglia用LAyoutParams设置新的宽度,但它不起作用。
请帮助我。
感谢。