2017-04-22 7 views
0
RelativeLayout layout; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    layout = new RelativeLayout(this); 
    setContentView(layout); 

    ScrollView sc = new ScrollView(this); 
    sc.setBackgroundColor(Color.YELLOW); 
    sc.setLayoutParams(layoutParams(300, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.ALIGN_PARENT_RIGHT)); 

    RelativeLayout rl = new RelativeLayout(this); 
    rl.setBackgroundColor(Color.CYAN); 
    rl.setLayoutParams(layoutParams(300, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.ALIGN_PARENT_RIGHT)); 


    int k=0; 
    for(int i=0;i<15;i++){ 
     ImageView iv1 = new ImageView(this); 
     iv1.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher)); 
     iv1.setLayoutParams(layoutParams(200, 200,0)); 
     iv1.setTranslationY(k); 
     k+=200; 
     rl.addView(iv1); 
    } 
    sc.addView(rl); 
    layout.addView(sc); 
} 

public RelativeLayout.LayoutParams layoutParams(int width,int height,int rule1){ 
    RelativeLayout.LayoutParams lpb = new RelativeLayout.LayoutParams(width,height); 
    if(rule1 != 0){ 
     lpb.addRule(rule1); 
    } 
    return lpb; 
} 

Output of code스크롤 뷰가 제대로 작동하지 않습니다

난 후 모든 이미지를 보여주고있다하지만 난있는 ScrollView를 사용하고 때 그때는 모든 이미지를 표시되지 않을있는 ScrollView없이 RelativeLayout의를 사용하고 있습니다 .
코드에서 문제가있는 곳을 확인하십시오.

ScrollView 내부에서 올바르게 정렬되어야합니다. Desired output

원하는 Java 코드로 변환하려는 XML 코드입니다.

<ScrollView 
    android:layout_width="300px" 
    android:layout_height="match_parent" 
    android:layout_alignParentRight="true" > 

    <RelativeLayout 
     android:layout_width="300px" 
     android:layout_height="fill_parent" 
     android:background="@android:color/holo_purple" > 

     <ImageView 
      android:id="@+id/iv1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:src="@drawable/ic_action_home" /> 

     <ImageView 
      android:id="@+id/iv2" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_below="@+id/iv1" 
      android:src="@drawable/ic_action_home" /> 

     <ImageView 
      android:id="@+id/iv3" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_below="@+id/iv2" 
      android:src="@drawable/ic_action_home" /> 

     <ImageView 
      android:id="@+id/iv4" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_below="@+id/iv3" 
      android:src="@drawable/ic_action_home" /> 
    </RelativeLayout> 
</ScrollView> 
+0

어떻게 보일지 이미지를 게시하십시오. –

+0

원하는 출력 스크린 샷을 추가했습니다. –

+0

RecyclerView를 사용하여 스크롤하는 내용을 반복합니다. –

답변

0

있는 ScrollView 당신이 그것을 스크롤 할 수있는 전체 내용을 포함에 한 아이을 배치해야 의미하는 FrameLayout이이다; 이 자식은 관리자가이고 복합 계층 구조가 인 l 그 자체 일 수 있습니다. 그래서

이있는 LinearLayout (권장) 또는 그것은 당신이 일을 doesnot 하나 개의 레이아웃에서 모든 이미지를 포함 doesnot 스크롤 뷰를 사용하는 경우 이미지를 표시되지만 상대 레이아웃를 사용하므로 에서 모든 이미지를 넣어 시도하는 다른 레이아웃.

+0

하지만 relativeLayout에 모든 이미지가있는 상태에서 relativeLayout을 Scrollview에 추가하면 이상적으로 스크롤바가있는 모든 이미지가 표시되어야합니다. 동일한 설정이 Bottom_Aligned 일 때 작동하기 때문입니다. –

+1

ScrollView에서 RelativeLayout에 대한 하단 정렬이 작동하지 않습니다. ScrollView는 무한하며 바닥이 없습니다. match_parent는 wrap_content로 덮어 씁니다. –

+0

에서 Bottom 정렬, 나는 전체 설정 (relativelayout에 수평으로 이미지를 추가하고 scrollview에 relativelayout을 추가 한 다음 화면 아래쪽에 scrollview를 추가 함)을 의미합니다. –