2011-11-25 108 views
1

我已經在Android 2.2中的Android開發人員網站Tab Layout上創建了Tab Layout示例。雖然該示例的工作原理與我所宣傳的一樣,但我無法在我放置在其中一個活動中的文本視圖上進行滾動。如果重要的話,TextView對象是在給定的活動中動態創建的。我試圖用ScrollView在main.xml中包裝組件的不同部分,但是我在啓動時遇到了構建錯誤或強制關閉。附件是實現textViews的代碼,它的xml以及main.xml文件。因爲我是新手,所以無法發佈圖片。任何建議,非常感謝。無法在Tabhost衍生活動中滾動標籤內容

的main.xml:

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

     <TabWidget    
      android:id="@android:id/tabs"    
      android:layout_width="fill_parent"    
      android:layout_height="wrap_content" />  
     <FrameLayout    
      android:id="@android:id/tabcontent"    
      android:layout_width="fill_parent"    
      android:layout_height="fill_parent" />    
    <!--   android:padding="5dp" --> 
    </LinearLayout> 
</TabHost> 

來源,在表所創建的我TextViews:以上活動

public class Activity2 extends Activity{  
    public void onCreate(Bundle savedInstanceState){   
     super.onCreate(savedInstanceState); 

     DisplayTexts(20); 
    } 

    private void DisplayTexts(int length){ 
     if(length == 0) 
      return; 

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

    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.VERTICAL);   
    for(int i = 0; i < length; i++) 
    { 
     TextView tv = new TextView(getApplicationContext()); 
     registerForContextMenu(tv); 
     tv.setTextSize(30); 
     tv.setText("TextView " + String.valueOf(i)); 
     tv.setLayoutParams(params); 
     layout.addView(tv); 
     tv.setId(i); 
    } 
    LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
    this.addContentView(layout, layoutParam); 
} 

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" > 
</LinearLayout> 

回答

0

相反addContentView的,使用的setContentView並嘗試爲佈局設置canScrollVertically(int direction)。

listView可以替代你正在嘗試完成的任務。

1

您是否嘗試過與該XML爲您的活動:

activity2.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_weight="1" 
      android:layout_width="fill_parent" 
     android:layout_height="fill_content"> 
     <LinearLayout     
       android:layout_width="fill_parent" 
       android:id="@+id/layout1" 
       android:layout_height="fill_parent" 
       android:orientation="vertical"> 
     </LinearLayout> 
</ScrollView> 

然後嘗試在Activity2.class添加成分,如:

setContentView(R.layout.activity2); 
... 
LinearLayout layout = (LinearLayout)findViewById(R.id.layout1); 
for(int i = 0; i < length; i++) 
{ 
     TextView tv = new TextView(getApplicationContext()); 
     registerForContextMenu(tv); 
     tv.setTextSize(30); 
     tv.setText("TextView " + String.valueOf(i)); 
     tv.setLayoutParams(params); 
     tv.setId(i); 
     layout.addView(tv);   
} 
... 
+0

的製造建議的更改,我現在可以滾動。非常感謝您的幫助! – lshan47

+0

很高興爲您提供幫助。如果您的答案對您有幫助,請通過檢查答案左上角的綠色「正確」標記來接受答案。它可以幫助您提高接受比率,也可以幫助其他人蔘考此問題。 – Hiral