2012-07-12 2 views
3
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/rootLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="wrap_content" 
     android:layout_height="80dp" 
     android:scrollbars="none" 
     android:layout_x="0dp" 
     android:layout_y="0dp" 
     android:fillViewport="true" > 

     <LinearLayout 
      android:id="@+id/linearLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 


    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_x="0dp" 
     android:layout_y="0dp" 
     android:src="@drawable/background" /> 
     </LinearLayout> 

    </ScrollView> 


    </LinearLayout> 

이것은 내 xml 파일입니다.이 파일은 매우 간단합니다. 내 의도는 스크롤보기의 높이를 동적으로 높이고 이미지 (스크롤보기와 함께 있음)보기가 점차적으로 표시됩니다. 그래서 어떻게 할 수 있습니까? 여기서 rootLayout은 무엇이고 어떻게 코드에서 rootLayout을 호출합니까?XML의 루트 레이아웃은 무엇입니까?

final Timer timer = new Timer(); 
     timer.scheduleAtFixedRate(new TimerTask() { 
      public void run() { 

       runOnUiThread(new Runnable() 
       { 
        public void run() { 

         secondCounter++; 
         yourNewHeight += 10; 

         sv.getLayoutParams().height = yourNewHeight; 

         LinearLayout root = (LinearLayout)  findViewById(R.id.rootLayout); 
         root.invalidate(); 
         Log.v("", "" +sv.getLayoutParams().height); 

         if(secondCounter == 20){ 
          timer.cancel(); 
         } 
        } 
       }); 
      } 
     }, delay, period); 

이것은 자바 파일의 코드입니다.하지만 작동하지 않습니다. 너희들은 나를 도와 줄 수있어 .. !!!

+1

AbsoluteLayout' 긴 감가 상각'주의하시기 바랍니다 사용하지 권하고 싶습니다 당신이 대안을 사용해야합니다. – Trevor

+1

Relative layout 대신에 gridview를 늘려 콘텐츠를 줄이지 않아도됩니다. 스크롤 뷰 아래에 선형 레이아웃으로 이미지를 동적으로 추가해야합니다. – AkashG

+0

고맙습니다. :-)하지만 XMl에 제대로 배치 할 수 없습니다. 선형 레이아웃을 사용할 때. – Amitabha

답변

0

이 레이아웃의 루트는 AbsoluteLayout입니다.

당신은 같은 전화를 사용하여 Activity의 모든 자식과 함께이 루트 View에 대한 참조를 얻을 수 있습니다

mRootView = ((ViewGroup)findViewById(R.id.rootLayout)); 

AbsoluteLaoyut 것을 오래 감가 상각을하고 아마로 교체 할 것 대체 ViewGroup, 예 : LinearLayout, RelativeLayout 등 나머지 레이아웃 및 원하는 방식에 따라 다릅니다. 당신이 (즉 setContentView()라고도 함)는 rootLayout 사용 참조 할 수 있어야 적절하게 코드에 XML을 팽창 한 경우

+0

나는이 분야에서 새롭기 때문에 AbsoluteLayout으로 쉽게 찾을 수 있습니다. LinearLayout 또는 RelativeLayout 문제는, 내가 XMl 적절한 위치에 항목을 배치 할 수 없습니다. 그래서 나는 그것을 사용하고있다. 어떤 해결책이 있습니까? Trevor ??? – Amitabha

0

:

AbsoluteLayout root = (AbsoluteLayout) findViewById(R.id.rootLayout); 

비록 당신이 단지 ScrollView의 높이를 높이기 위해 노력하는 경우, 그것은 더 의미를 직접 호출 할 수 있습니다 :

ScrollView scroll = (ScrollView) findViewById(R.id.scrollView1); 

그리고 위와 같이, 당신은 아마 RelativeLayout 또는 LinearLayout 오히려 AbsoluteLayout보다를 사용해야합니다.

0

ScrollView는 자식 하나만 가질 수 있으므로 ScrollView 자체를 루트 요소로 사용할 수 있습니다. 선형 뷰는 LinearLayout을 자식으로 사용하여 원하는 뷰를 추가 할 수 있습니다.

그리고 AbsoluteLayout는 사용되지 않으며 나는 그것이

관련 문제