2017-07-06 83 views
0

我正在编写一个布局,我必须在垂直线性布局内填充textView programmaticaly。但是我的一些textView内容对我的屏幕尺寸来说太宽了,而且它们不可见。这是我的布局以编程方式填充时线性布局不能水平滚动

<ScrollView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:scrollbars="vertical" 
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"> 

    <HorizontalScrollView 
     android:layout_width="320px" 
     android:layout_height="match_parent"> 


     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/diff_layout" 
      android:layout_width="320px" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

     </LinearLayout> 
    </HorizontalScrollView> 
</ScrollView> 

这里是代码我在哪里编程填充线性布局: -

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.diff_layout); 

    String[] splitLines = content.split("\n"); 
    for(int i=0;i<splitLines.length;i++){ 
     TextView textView = new TextView(this); 
     textView.setSingleLine(true); 
     textView.setLines(1); 
     //textView.setHorizontallyScrolling(true); 
     textView.setText(splitLines[i]); 
     //textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
     textView.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); 
     /*textView.setMovementMethod(new ScrollingMovementMethod()); 
     textView.setHorizontallyScrolling(true);*/ 
     linearLayout.addView(textView); 
    } 

请告诉我,我在哪里做错事

+0

不要宽度设置为您Horizo​​ntalScrollview – tyczj

+0

尝试把layout_width =“WRAP_CONTENT”你Horizo​​ntalScrollView和LinearLayout中 – ARP

+0

如果使用水平滚动内垂直布局你会到达什么?只是尝试添加textView直接滚动视图。 – Ibrahim

回答

0

经过多次击中审判,我想出了正确的解决方案: -

<android.support.v4.widget.NestedScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 

    <HorizontalScrollView android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/diff_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 
     </LinearLayout> 

    </HorizontalScrollView> 

</android.support.v4.widget.NestedScrollView> 

和我的java代码片段: -

LinearLayout linearLayout =(LinearLayout) findViewById(R.id.diff_layout);

String[] splitLines = content.split("\n"); 
    for(int i=0;i<splitLines.length;i++){ 
     TextView textView = new TextView(this); 
     textView.setText(splitLines[i]); 
     textView.setMaxLines(1); 
     textView.setMovementMethod(new ScrollingMovementMethod()); 
     linearLayout.addView(textView); 
    }