Intereting Posts
Logcat не работает в студии Android Android + OpenCV: как установить разрешение камеры при использовании CameraBridgeViewBase Разрешение API Cloud Vision API отклонено Android NDK / JNI – неопределенная ссылка на функцию, определенную в пользовательском файле заголовка NoClassDefFoundError для библиотеки .jar во время выполнения в Android Studio Как включить homeAsUp или вызвать setDisplayHomeAsUpEnabled () на отдельной панели инструментов с помощью appcompat v21 "@android: drawable / ic_" vs "@ * android: drawable / ic_" Синхронизация двух ScrollView Как выполнить проверку подлинности HTTP в android? Правильный способ использования переменных среды системы в gradle с помощью Android Studio Динамический широковещательный приемник в фрагменте Возможно ли узнать источник (например, Google Play) приложения для Android? SetContentView () медленный с фрагментом карты Наложение цвета на Android – режимы PorterDuff RecyclerView notifyDataSetChanged свитки в верхнее положение

Добавление программы LinearLayout программно в Android не работает

Иерархия такова:

  • RelativeLayout
    • LinearLayout (вертикальный)
      • FrameLayout (вес 5)
        • ImageView
      • Вид (вес 1)

Вид – это просто фиктивный вид для назначения расстояния. Я сделал это в макете xml, и он работает. Но когда я хочу сделать это программно, следующие коды не работают.

LinearLayout LL = new LinearLayout(this); ImageView ladder = new ImageView(this); FrameLayout ladderFL = new FrameLayout(this); View dummyView = new View(this); ladder.setImageResource(R.drawable.ladder1); LL.setOrientation(LinearLayout.VERTICAL); LayoutParams LLParams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); LinearLayout.LayoutParams ladderFLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 0); ladderFLParams.weight = 5f; LinearLayout.LayoutParams dummyParams = new LinearLayout.LayoutParams(0,0); dummyParams.weight = 1f; FrameLayout.LayoutParams ladderParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); ladder.setLayoutParams(ladderParams); ladderFL.setLayoutParams(ladderFLParams); dummyView.setLayoutParams(dummyParams); LL.setWeightSum(6f); LL.setLayoutParams(LLParams); ladderFL.addView(ladder); LL.addView(ladderFL); LL.addView(dummyView); ((RelativeLayout) findViewById(R.id.screenRL)).addView(LL); 

Solutions Collecting From Web of "Добавление программы LinearLayout программно в Android не работает"

 LinearLayout LL = new LinearLayout(this); LL.setBackgroundColor(Color.CYAN); LL.setOrientation(LinearLayout.VERTICAL); LayoutParams LLParams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); LL.setWeightSum(6f); LL.setLayoutParams(LLParams); ImageView ladder = new ImageView(this); ladder.setImageResource(R.drawable.ic_launcher); FrameLayout.LayoutParams ladderParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); ladder.setLayoutParams(ladderParams); FrameLayout ladderFL = new FrameLayout(this); LinearLayout.LayoutParams ladderFLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 0); ladderFLParams.weight = 5f; ladderFL.setLayoutParams(ladderFLParams); ladderFL.setBackgroundColor(Color.GREEN); View dummyView = new View(this); LinearLayout.LayoutParams dummyParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,0); dummyParams.weight = 1f; dummyView.setLayoutParams(dummyParams); dummyView.setBackgroundColor(Color.RED); ladderFL.addView(ladder); LL.addView(ladderFL); LL.addView(dummyView); RelativeLayout rl=((RelativeLayout) findViewById(R.id.screenRL)); rl.addView(LL); 

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