在列表视图中调整线性布局的一个文本视图的大小

时间:2015-09-22 08:45:30

标签: android android-layout

我在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设置新的宽度,但它不起作用。

请帮助我。

感谢。

0 个答案:

没有答案