2013-12-08 4 views
0

Я использую relativelayout внутри scrollview, и я добавляю взгляды к этому relativelayout динамически. Хотя представления больше, чем экраны его не прокрутки. Помогите решить эту задачу.Относительная компоновка внутри прокрутки не работает отлично.

Мои ScrollView XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

    tools:context=".MainActivity" > 

    <ScrollView 
     android:id="@+id/mainScrollView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/bg" 
     android:fillViewport="true" 


     > 

    <RelativeLayout 
      android:id="@+id/relativeLayout1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 

      /> 


</ScrollView> 
</RelativeLayout> 

Код, используемый для динамического добавления изображений:

 if (isOddViewNo) 
       { 
        isOddViewNo=false; 

        final View view= getLayoutInflater().inflate(R.layout.sample, null); 

        iv= (ImageView)view.findViewById(R.id.iv_small); 
       ImageView iv1= (ImageView)view.findViewById(R.id.iv_big); 
       iv.setVisibility(View.VISIBLE); 
       iv1.setVisibility(View.GONE); 

       iv.setImageResource(R.drawable.ic_launcher); 





        iv.setX(x-45); 
        iv.setY(ypos+17); 

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); 

        view.setLayoutParams(lp); 

        rl.addView(view); 
        x+=100; 
       } 
       else 
       { 
        isOddViewNo=true; 

        final View view= getLayoutInflater().inflate(R.layout.sample, null); 


        iv= (ImageView)view.findViewById(R.id.iv_big); 


        ImageView iv1= (ImageView)view.findViewById(R.id.iv_small); 
        iv.setVisibility(View.VISIBLE); 
        iv1.setVisibility(View.GONE); 
        iv.setImageResource(R.drawable.ic_launcher); 
//     iv.setLayoutParams(new LayoutParams(200,200)); 

        iv.setX(x-45); 
        iv.setY(ypos); 

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); 

        view.setLayoutParams(lp); 

        rl.addView(view); 

        x+=178; 
       } 

Мой надутый sample.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

<ImageView 
    android:layout_height="50dp" 
    android:layout_width="50dp" 
    android:id="@+id/iv_small" 

    android:visibility="gone" 
    /> 

<ImageView 
    android:layout_height="80dp" 
    android:layout_width="80dp" 
    android:id="@+id/iv_big" 
    android:visibility="gone" 

    /> 
</LinearLayout> 

Мой скриншот: As I showed my screenshot,it has many images below but couldnt able to scroll.

+0

Попробовали ли вы установить параметр макета высоты для представления, добавленного кодом, чтобы обернуть содержимое, а не заполнить родительский элемент? – Diego

+0

Да пробовал, но не работал – user1891910

+0

Прежде всего, измените обертывание содержимого, как ширины, так и высоты, родительского отношения relativelayout в sample.xml. Вы устанавливаете значения x и y в виде изображения внутри sample.xml. попробуйте установить x и y на весь макет (вид переменной). – Diego

ответ

0

Вы должны установить высоту прокрутки в wrap_content. Также никогда не используйте fill_parent (устаревший), вместо этого используйте match_parent.

+0

Я пробовал это, но он не работал, но я заметил одно: когда я пытаюсь исправить высоту в RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams (ViewGroup.LayoutParams.FILL_PARENT, ViewGroup .LayoutParams.FILL_PARENT (1500)); это прокрутка – user1891910

+0

Вы пытались установить wrap_content как на scrollView, так и на relativeLayout и надутые дети? которые должны работать. – SuppressWarnings

+0

Да, я пробовал, но не работал – user1891910

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