2012-10-22 15 views
24

Muszę zaimplementować okno dialogowe dla mojej aplikacji Android poprzez kod Java, więc nie mogę używać XML.Jak programowo ustawić wagę dla przycisku

Mam root gdzie implementuję pasek wyszukiwania zakresu, następnie mam inny LinearLayout w układzie głównym, z orientacją poziomą, gdzie chcę dodać dwa przyciski w tym samym rzędzie. Muszę więc ustawić wagę na 1, a szerokość na FILL_PARENT i wysokość na WRAP_CONTENT.

Jak mogę to zrobić z kodem Java?

Odpowiedz

42
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
p.weight = 1; 

rangeSeekBar.setLayoutParams(p); 

Nie jestem pewien, w którym widoku chcesz ustawić parametry układu. Właśnie założyłem, że rangeSekbar pokazuje przykład. Zmień, jeśli potrzebujesz.

Podczas korzystania params układu zawsze używać typu param korzenia za ..

Ex. jeśli masz View chcesz zastosować do params ciągu RelativeLayout użytku RelativeLayout.LayoutParams ..

+0

To działa, dzięki. – Zookey

+0

Dzięki człowieku, to działa –

14

można przekazać go jako części konstruktora LinearLayout.LayoutParams: Czy chodziło Ci wrap_content?

LayoutParams param = new LinearLayout.LayoutParams(
         LayoutParams.MATCH_PARENT, 
         LayoutParams.WRAP_CONTENT, 1.0f); 

1.0f jest waga

0

nie używa XML wymóg? Jeśli nie, zawsze możesz zbudować swój układ w XML, a następnie użyć LayoutInflater w czasie wykonywania, aby zbudować swoją hierarchię widoku i przekazać ją do setView() w swoim oknie dialogowym.

Na przykład:

LayoutInflater inflater = LayoutInflater.from(getActivity()); 
View v = inflater.inflate(R.layout.my_dialog_layout, null); 

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setView(v); 
Powiązane problemy