2014-09-03 2 views
0

Что я пытаюсь сделать, это пользовательский диалог в андроиде, и здесь на картинке:Как я могу исправить выравнивание в пользовательском диалоге?

enter image description here

И как вы можете видеть, что есть большое пространство между высотой и его редактированием текст, как может сделать все компоненты во втором ряду с левой стороны или по центру по горизонтали, вот мой код:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(FullImageActivity2.this); 
        final TextView title = new TextView(FullImageActivity2.this); 
        title.setTextColor(Color.parseColor("#000000")); 
        title.setText("Add To Cart"); 
        title.setPadding(5, 10, 0, 10); 

        alertDialogBuilder.setCustomTitle(title); 

        LinearLayout ll=new LinearLayout(FullImageActivity2.this); 
        final LayoutParams lparams = new LayoutParams(50,50); 
        lparams.weight=(float) 0.25; 
        lparams.leftMargin=3; 
        lparams.rightMargin=3; 
        ll.setOrientation(LinearLayout.VERTICAL); 
        TableLayout table = new TableLayout (FullImageActivity2.this); 
        TableRow row0= new TableRow(FullImageActivity2.this); 
        TableRow row1= new TableRow(FullImageActivity2.this); 


        TableRow.LayoutParams tr1 = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT); 
        tr1.gravity=1; 

        //tr1.topMargin=15; 
        //tr1.bottomMargin=10; 
        row1.setLayoutParams(tr1); 
        row0.setLayoutParams(tr1); 

        final EditText height = new EditText(FullImageActivity2.this); 
        final TextView heightTxt = new TextView(FullImageActivity2.this); 

        final EditText width = new EditText(FullImageActivity2.this); 
        final TextView widthTxt = new TextView(FullImageActivity2.this); 

        final TextView hint = new TextView(FullImageActivity2.this); 

        height.setInputType(InputType.TYPE_CLASS_NUMBER); 

        height.setLayoutParams(lparams); 

        width.setInputType(InputType.TYPE_CLASS_NUMBER); 
        //height.setPadding(3, 0, 3, 0); 
        width.setLayoutParams(lparams); 

        heightTxt.setText("height"); 
        heightTxt.setTextColor(Color.parseColor("#000000")); 
        heightTxt.setPadding(7, 0, 5, 0); 

        hint.setText("please enter height and width in meter"); 
        hint.setTextColor(Color.parseColor("#000000")); 
        hint.setPadding(5, 0, 5, 0); 

        widthTxt.setText("width"); 
        widthTxt.setTextColor(Color.parseColor("#000000")); 
        widthTxt.setPadding(5, 0, 5, 0); 

        row0.addView(hint); 
        row1.addView(heightTxt); 
        row1.addView(height); 
        row1.addView(widthTxt); 
        row1.addView(width); 
        table.addView(row0); 
        table.addView(row1); 



        // ll.addView(height); 
        //ll.addView(heightTxt); 
        ll.addView(table); 


        alertDialogBuilder.setView(ll); 

        alertDialogBuilder 

         .setCancelable(false) 
         .setPositiveButton("Cancel",new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 



          } 
          }) 
         .setNegativeButton("Add",new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 

           itemId=productname.getText().toString(); 
           Height= height.getText().toString(); 
           Width= width.getText().toString(); 
           Image=imageForCart; 
           Log.e("item id",itemId+""); 
           Log.e("Height",Height+""); 
           Log.e("Width",Width+""); 
           Log.e("Image",Image+""); 
           AddToCart.add_to_class(itemId,Height,Width,Image); 
           Toast.makeText(FullImageActivity2.this,"add successfully" , Toast.LENGTH_SHORT).show(); 
           Intent opencart=new Intent(FullImageActivity2.this,CartList.class); 
           startActivity(opencart); 


          } 


         }); 

         AlertDialog alertDialog = alertDialogBuilder.create();   
         alertDialog.show(); 

Любая помощь ??

ответ

0

Установите параметр макета в heightTxt и widthTxt

+0

это не сработало .. !! – sereen

0

Вместо жесткого кодирования значения lparams, попытайтесь рассчитать размер экрана и выбрать значения в соответствии с размером экрана.

0

Постарайтесь предоставить LayoutWeight для вашего Edittext как 1. Он скроет все оставшееся пространство. Если вы предоставите LayoutWeight для обоих Edittexts, они разделит оставшееся пространство на одинаковое.

Что сейчас происходит с вашим кодом - это предоставление LayoutWeight 1 в TextView of Height. поэтому все остальные компоненты в этой строке берут свое минимальное пространство, а отдых занят Height TextView.

Если вы хотите сделать их равными по размеру, то предоставить LayoutWeight всем как 1.

 Смежные вопросы

  • Нет связанных вопросов^_^