2012-06-22 3 views
0

Внутри ScrollView У меня есть LinearLayout, где в свою очередь он содержит RadioButtonGroup с RadioButtons. Я создал RadioButton с настраиваемым (небольшим размером радиобъект), как на первом изображении, где я получаю полосу прокрутки.Панель прокрутки Android, показывающая, когда высота определена

Я пытался уменьшить размер макета с помощью следующего кода

LinearLayout.LayoutParams radio = new LinearLayout.LayoutParams(50, 50); 

, но до сих пор я получаю скроллбар, как удалить свиток.

enter image description here

 ScrollView outerScroll = new ScrollView(this); 

     LinearLayout.LayoutParams outerScrollLP = new LinearLayout.LayoutParams( 
       LinearLayout.LayoutParams.FILL_PARENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT);     

     outerScroll.setLayoutParams(outerScrollLP); 

     LinearLayout outerLL = new LinearLayout(this); 

     LinearLayout.LayoutParams outerLLLP = new LinearLayout.LayoutParams( 
       LinearLayout.LayoutParams.FILL_PARENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT);    

     outerLL.setLayoutParams(outerLLLP); 

     outerLL.setOrientation(LinearLayout.VERTICAL);  
     //outerLL.setScrollBarStyle(LinearLayout.SCROLLBARS_OUTSIDE_OVERLAY); 
     outerLL.setBackgroundResource(R.drawable.bg); 
     //outerLL.setBackgroundColor(Color.RED); 

     for (QuestionModol que : queBL.getQuestion(1)) { 
      try { 

       LinearLayout quesLL = new LinearLayout(this); 
       LinearLayout.LayoutParams quesLP = new LinearLayout.LayoutParams( 
         LinearLayout.LayoutParams.FILL_PARENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT); 
       quesLP.setMargins(30, 10, 30, 5); 
       //quesLL.setPadding(50, 30, 50, 10); 
       quesLL.setLayoutParams(quesLP); 
       quesLL.setOrientation(LinearLayout.VERTICAL); 
       quesLL.setBackgroundResource(R.drawable.question_wrap); 

       TextView queTV = new TextView(this); 
       LinearLayout.LayoutParams queTVLP = new LinearLayout.LayoutParams( 
         LinearLayout.LayoutParams.FILL_PARENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT); 
       queTVLP.setMargins(10, 10, 10, 10); 
       queTV.setLayoutParams(queTVLP); 
       queTV.setPadding(10, 10, 10, 10); 
       queTV.setBackgroundColor(Color.BLUE); 
       queTV.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15); 
       queTV.setBackgroundResource(R.drawable.questiontext); 

       queTV.setText(que.getQuestion()); 
       queTV.setTextColor(Color.WHITE);      

       quesLL.addView(queTV); 

       // Create Radio Button 

       RadioGroup optRadioGroup = new RadioGroup(this); 

       RadioGroup.LayoutParams optRadioGroupLP = new RadioGroup.LayoutParams( 
         RadioGroup.LayoutParams.WRAP_CONTENT, 
         RadioGroup.LayoutParams.WRAP_CONTENT); 
       optRadioGroupLP.setMargins(20, 0, 20, 10);      
       optRadioGroup.setLayoutParams(optRadioGroupLP); 
       optRadioGroup.setTag(que.getId()); 
       optRadioGroup.setOrientation(RadioGroup.VERTICAL); 

       for(OptionsModel options : que.getOptions()) { 
        RadioButton rdoOptBut = new RadioButton(this); 

        LinearLayout.LayoutParams rdoOptButLP = new LinearLayout.LayoutParams( 
          LinearLayout.LayoutParams.FILL_PARENT, 
          LinearLayout.LayoutParams.WRAP_CONTENT); 
        rdoOptButLP.gravity = Gravity.CENTER; 

        // Hack code to remove the space b/w radio buttons 
        //rdoOptBut.setBackgroundColor(Color.TRANSPARENT);      

        rdoOptBut.setPadding(40, 0, 0, 0);      
        rdoOptBut.setId(options.getOptionId()); 
        rdoOptBut.setLayoutParams(rdoOptButLP); 
        //rdoOptBut.setBackgroundResource(0); 
        rdoOptBut.setText(options.getOptionName()); 
        rdoOptBut.setButtonDrawable(R.drawable.custom_radiobutton); 
        //rdoOptBut.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);      

        optRadioGroup.addView(rdoOptBut); 
       } 

       quesLL.addView(optRadioGroup); 

       outerLL.addView(quesLL);  

      } catch (Exception e) { 
       // TODO: handle exception 
      } 
     } 
     outerScroll.addView(outerLL); 
+0

Покажите нам код, пожалуйста. – Anu

+0

, если количество просмотров, отображаемых в макете, больше, чем размер макета, то полоса прокрутки всегда будет отображаться. –

+0

Но я уменьшаю высоту радиобарабана и до 50, но все же покажу, если я удалю полосу прокрутки, экран не будет отображаться полностью, поскольку некоторые из нижних экранов будут усечены. –

ответ

0

добавить это свойство к вашему ScrollBar

  android:scrollbars="none" 
+0

Будет работать ваш код и вернуться, между Я строю приведенный выше код динамически –

+0

Я думаю, что макет не освежает, radobutton потребляет свой стандартный по умолчанию размер андроида. вот почему, когда я уменьшаю компоновку пользовательской кнопки радиона, используя LinearLayout.LayoutParams radio = new LinearLayout.LayoutParams (50, 50); его все еще прокручивается. –

+0

Ану, используя ваш код, я могу предотвратить полосу прокрутки, но я не могу прокручивать экран. Позвольте мне четко сформулировать проблему. –

0

Понял фиксированные себя, для LinearLayout я использовал большое фоновое изображение, когда удаляется фоновое изображение его прекрасно работает, Спасибо всем за помощь и поддержку.

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