Android - Как программно исправить положение вида в Linear Layout - PullRequest
2 голосов
/ 02 апреля 2012

Я добавляю LinearLayout (дочернее представление) к другому LinearLayout (родительское представление) программно, здесь я хочу установить позицию дочернего представления в center_horizontal. Как это сделать? пожалуйста, кто-нибудь может мне помочь.

code

LinearLayout linearLayoutstate = new LinearLayout(this);

linearLayoutstate.setOrientation(LinearLayout.HORIZONTAL);

TextView stateTitletv = new TextView(this);

stateTitletv.setText("tv1");

TextView state_valuetv = new TextView(this);    

state_valuetv.setText("tv2");    

linearLayoutstate.addView(stateTitletv);

linearLayoutstate.addView(state_valuetv);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,Gravity.CENTER_HORIZONTAL);

LL_SelectedFilters.addView(linearLayoutstate,layoutParams);

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Используйте это небольшое изменение :::

  LinearLayout linearLayoutstate = new LinearLayout(this);

  linearLayoutstate.setOrientation(LinearLayout.HORIZONTAL);
  linearLayoutstate.setGravity(Gravity.CENTER_HORIZONTAL);
  LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);

  TextView stateTitletv = new TextView(this);

  stateTitletv.setText("tv1");

  TextView state_valuetv = new TextView(this);

  state_valuetv.setText("tv2");

  linearLayoutstate.addView(stateTitletv);

  linearLayoutstate.addView(state_valuetv);

  LL_SelectedFilters.addView(linearLayoutstate,layoutParams);
0 голосов
/ 02 апреля 2012

Ключ к вашей проблеме находится в поле gravity поля LinearLayout.LayoutParams вашего дочернего представления:

LinearLayout.LayoutParams lllp=(LinearLayout.LayoutParams)linearLayoutstate.getLayoutParams();

lllp.gravity=Gravity.CENTER_HORIZONTAL;
linearLayoutstate.setLayoutParams(lllp);

LL_SelectedFilters.addView(linearLayoutstate);
...