Intereting Posts
Скопируйте файлы из папки SD-карты в другую папку на SD-карте Эмулятор студии Android не запускается с сообщением об ошибке ограничения памяти Ошибка при запуске Android-проекта в Intellij IDEA Как изменить цвет текста заголовка и цвет без изменения цвета текста меню переполнения текста в новой панели инструментов? Запретить закрытие экрана активности Android на внешнем прикосновении Как отформатировать активность из другого мероприятия с помощью опций меню Почему getView, getY, setX и setY ImageView не представляют фактическое значение в Relative Layout? Как обернуть заголовок предпочтения? ViewPagerAndroid не отображается в ScrollView с использованием React-Native Android, NoSuchFieldError при запуске второй активности Android: Location.distanceTo не работает правильно? Более эффективный способ обновления пользовательского интерфейса от службы, чем намерения? Приложение не настроено для выставления счетов через Google Play Как настроить цвет фона элемента и цвета текста внутри NavigationView? Пространство между клавиатурой и EditText в Android

Программный пакет линейного макета Android

Я хочу добавить три линейных макета в программу программно с каждой одинаковой шириной. Проблема в том, что я не могу установить вес этих макетов программным путем. Я мог бы сделать это в xml, но я хочу сделать это в программе. Вот что я хочу: Введите описание изображения здесь

Solutions Collecting From Web of "Программный пакет линейного макета Android"

Здесь его решение

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100); lp.weight = 1; 

См. Полное решение

 LinearLayout ll1, ll2, ll3; /* Find these LinearLayout by ID ie ll1=(LinearLayout)findViewById(R.id.ll1); */ LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100); lp.weight = 1; ll1.setLayoutParams(lp); ll2.setLayoutParams(lp); ll3.setLayoutParams(lp); 

Используйте new LinearLayout.LayoutParams(int width, int height, float weight) чтобы установить вес при установке параметров макета в подпункты

Сделайте так …

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtNote = (LinedEditText) findViewById(R.id.txtNote); lnr = (LinearLayout) findViewById(R.id.lnr); LinearLayout l1 = new LinearLayout(this); LinearLayout l2 = new LinearLayout(this); LinearLayout l3 = new LinearLayout(this); l1.setBackgroundResource(android.R.color.holo_green_light); l2.setBackgroundResource(android.R.color.holo_orange_dark); l3.setBackgroundResource(android.R.color.holo_blue_bright); LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1); lnr.addView(l1, param); lnr.addView(l2, param); lnr.addView(l3, param); } 

Вы можете сделать это, установив свойство макета для отдельных линейных макетов, передав его в LinearLayout – конструктор LayoutParams:

 LinearLayout.LayoutParams param = new LinearLayout.LayoutParam( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1); 

или

 LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( 0, LayoutParams.MATCH_PARENT, 1); 

Надеюсь, это поможет вам!