2011-10-09 2 views
3

내 응용 프로그램에서 scrollview를 사용하고 싶습니다. scrollview에 텍스트보기를 추가하려고 시도했지만 스크롤보기의 배경색을 제외하고 렌더링 된 것을 볼 수 없습니다. 여기Android scrollview는 프로그래밍 방식으로 생성 할 수 없습니다.

내가 그것을 어떻게 있습니다 :

public class MyView extends ViewGroup 
{ 
    ScrollView myScrollview; 
     Textview tv; 

     public MyView(Context context) { 
     myScrollView = new ScrollView(context); 
     myScrollView.setBackgroundColor(0xfff00fff); 

     textview=new TextView(context); 

     textview.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
       textview.setLayoutParams(params) 
     textview.setText("sadfasdfasdfasdfasdfasdfasdfsadfsadf"); 

     textview.layout(0, 0, 1000, 2000); 
     textview.setHeight(5000); 
     textview.setWidth(3200); 
       myScrollView .addView(tv); 
       addView(myScrollview); 
     } 

    @Override 
    protected void onLayout(boolean changed, int l, int t, int r, int b) { 
     // TODO Auto-generated method stub 

     int width = r-l; 
     int height =b-t; 

     myScrollView .layout(0, 0, width, height-100); 
    } 
} 

내가 거의 모든있는 ScrollView 튜토리얼 뷰를 정의하기 위해 XML을 사용하는 발견했다. 하지만 프로그래밍 방식으로하고 싶습니다. 그러나 어쨌든, 나는 또한 xml을 시도했다. , 그 자체로는 XML있는 ScrollView가 올바른지

//www.curious-creature.org/2010/08/15/scrollviews-handy-trick/ : HTTP :

내가 테스트를 위해 여기에서 로맹 가이의 XML을 복사 이 스크롤 뷰를 작성하여 액티비티에 추가하면,

scrollview= (ScrollView) getLayoutInflater().inflate(R.layout.scrollviewid,null); 

setContentView (scrollview);

또는 setContentView(R.layout.scrollviewid);

일했다. 그러나 scrollview를 다른보기의 하위보기로 만들고 싶다면 다시 scrollview의 배경 만 볼 수 있습니다. 내부는 렌더링되지 않습니다.

 public class MyView extends ViewGroup 
{ 
    ScrollView myScrollview; 

    public MyView(Activity activity,Context context) 
    { 
      super(context); 

    myScrollview= (ScrollView) activity.getLayoutInflater().inflate(R.layout.restaurantcategoryselectorviewlayout,null); 
    myScrollview.setBackgroundColor(0xfff00fff); 

    addView(myScrollview); 
} 

@Override 
protected void onLayout(boolean changed, int l, int t, int r, int b) { 
    // TODO Auto-generated method stub 

    int width = r-l; 
    int height =b-t; 

    myScrollview.layout(0, 0, width, height-100); 
} 
} 

내 코드에 어떤 문제가 있습니까? xml이 아닌 프로그램으로 scrollview를 만드는 예가 있습니까?

또한 kernel.org에서도 android의 자바 소스 코드입니까? 자식 서비스가 다운 되었기 때문에, 어디에서 안드로이드 소스 코드를 다운로드 할 수 있습니까?

답변

1

ViewGroup에 어떤 문제가 있는지 명확하지 않지만 문제가있는 것 같습니다. 코드를 가져 와서 (위에 게시 된 코드에 여러 가지 오류가 있음) 디버그 한 다음 간단한 활동의 ​​시작 코드에 넣으면 예상대로 작동합니다. 테스트 텍스트가있는 스크롤 텍스트 영역을 만듭니다.

다음은이 코드입니다. 이 레이아웃 파일 ID linearLayout1와 간단한 선형 레이아웃을 포함 할 것으로 예상합니다 : 당신이 프로그래밍 방식의 ScrollView 내부를 만들 때

public class ListTestActivity extends Activity { 
LinearLayout layout; 
ScrollView myScrollView; 
TextView textview; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    layout = (LinearLayout) this.findViewById(R.id.linearLayout1); 

    myScrollView = new ScrollView(this); 
    myScrollView.setBackgroundColor(0xfff00fff); 
    myScrollView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 


    textview = new TextView(this); 
    textview.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
    textview.setText("sadfasdfasdfasdfasdfasd fasdfsadfsadf"); 

    myScrollView.addView(textview); 
    layout.addView(myScrollView); 
}} 
3

당신이 다음 View을 만들이 View 내부의 ScrollView를 추가해야합니다.

LinearLayout maincontainer = (LinearLayout) findViewById(R.id.weatherInfo); 
maincontainer.setOrientation(LinearLayout.HORIZONTAL); 

final HorizontalScrollView scrollView = new HorizontalScrollView(getApplicationContext()); 
maincontainer.addView(scrollView); 

final LinearLayout linearLayout = new LinearLayout(getApplicationContext()); 
linearLayout.setOrientation(LinearLayout.HORIZONTAL); 

scrollView.addView(linearLayout); 
관련 문제