2016-01-27 3 views
0

Я пытаюсь создать кнопку переключения, которая будет отображать больше кнопок и некоторых TextView, как показано ниже.Создание нового линейного макета с определенными параметрами внутри другого линейного макета

enter image description here

Когда кнопка переключения щелкнули, она показывает 3 TextViews под другом и 3 кнопки рядом друг с другом. После отключения линейная компоновка 2 (определенная для этого номера задания) будет скрыта, а остальные кнопки будут соответственно возвращены.

Вот что у меня есть

public void createNewJob(String JobNo) { 
    LinearLayout layout; 
    layout = (LinearLayout) findViewById(R.id.ReportsLayout); 
    ToggleButton NewJob = new ToggleButton(this); 
    NewJob.setText(JobNo); 
    NewJob.setTextSize(setDP(40f)); 
    layout.addView(NewJob); 
    // 
    //int JobNoInt = new Integer(Integer.parseInt(JobNo)); 
    //NewJob.setId(JobNoInt); 
    NewJob.setOnClickListener(openToggle(NewJob, this)); 
} 

public View.OnClickListener openToggle(final ToggleButton button, final Context context){ 
    return new View.OnClickListener() { 
     public void onClick(View v) { 
      // LinearLayout layout = new LinearLayout(Reports.this); 
      LinearLayout layout = (LinearLayout) findViewById(R.id.ReportsLayout); 
      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f); 
      //layout.setLayoutParams(lp); 
      //layout.setLayoutParams(lp); 
      //layout.setOrientation(LinearLayout.HORIZONTAL); 
      TextView viewMachine = new TextView(Reports.this); 
      TextView viewItem = new TextView(Reports.this); 
      TextView viewDate = new TextView(Reports.this); 
      Button enterJob = new Button(Reports.this); 
      Button editJob = new Button(Reports.this); 
      Button exportJob = new Button(Reports.this); 
      //enterJob.setLayoutParams(lp); 
      //editJob.setLayoutParams(lp); 
      //exportJob.setLayoutParams(lp); 
      if(button.isChecked()==(true)) { 
       layout.addView(viewMachine,lp); 
       layout.addView(viewItem,lp); 
       layout.addView(viewDate,lp); 

       layout.addView(enterJob,lp); 
       layout.addView(editJob, lp); 
       layout.addView(exportJob, lp); 
      } 
      else{ 
       layout.setVisibility(LinearLayout.GONE); 
      } 
     } 
    }; 
} 

createNewJob запускается при каждом открытии отчетов XML (Это создает новые рабочие места).

С помощью этого кода все, что можно сделать, это создать текстовые представления и кнопки (показано ниже), однако мне нужно, чтобы кнопки и текстовые представления были под кнопками заданий. enter image description here

Если вы не можете ответить на этот совет, пожалуйста, дать в том, как я мог бы спросить его лучше (я прочитал правила)

+0

Возможно, вы можете увидеть, как реализован ExpandableListView http://developer.android.com/reference/android/widget/ExpandableListView.html – AimanB

+0

Почему вы не используете ExpandableListView. Это намного лучше, и ваши взгляды будут переработаны. – GIGAMOLE

+0

О, боже, спасибо, ребята. Я ненавижу, когда ответы такие простые: P. Я дам это сейчас – Jube

ответ

1

@Jube Вы должны установить LinearLayout 2 android:visibility="gone" Когда Нажмите Переключить кнопка устанавливает видимость LinearLayout 2 Видимая на layout2.setVisibility(View.VISIBLE); в Java.

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