ScrollView在Android应用程序中不工作

ScrollView在Android应用程序中不工作,android,android-layout,uiscrollview,Android,Android Layout,Uiscrollview,我有这样的布局: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="fill_parent" android:fillViewport="true"> &

我有这样的布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:id="@+id/root_ll"
        android:orientation="vertical"
        android:gravity="center_horizontal">

    </LinearLayout>

</ScrollView>

下面的代码,一切都生成得很完美,但是屏幕不能滚动,你能告诉我问题出在哪里吗?谢谢

LinearLayout linearLayout= (LinearLayout) findViewById(R.id.root_ll);
for(int i = 0; i < 6 i++)
{
            LinearLayout llInside= new LinearLayout(this);
            llInside.setOrientation(LinearLayout.HORIZONTAL);
            llInside.setLayoutParams(new AbsListView.LayoutParams(
                    AbsListView.LayoutParams.WRAP_CONTENT,
                    AbsListView.LayoutParams.WRAP_CONTENT));
            WebView wView = new WebView(this);


            TextView tvInside = new TextView(this);
                    wView.loadUrl("file:///android_asset/a.gif");
                    setContentView(wView);
                    tvInside.setText("A");

 wView.setLayoutParams(new AbsListView.LayoutParams(
                    600,
                    600));

            tvInside.setTextSize(TypedValue.COMPLEX_UNIT_SP, 74);

            if(wView.getParent()!=null)
                ((ViewGroup)wView.getParent()).removeView(wView);

            if(tvInside.getParent()!=null)
                ((ViewGroup)tvInside.getParent()).removeView(tvInside);

            llInside.addView(wView);
            llInside.addView(tvInside);




            if(llInside.getParent()!=null)
                  ((ViewGroup)llInside.getParent()).removeView(llInside);

            linearLayout.addView(llInside);


            // linearLayout.addView(wView);
            //make visible to program



}
    if(linearLayout.getParent()!=null)
            ((ViewGroup)linearLayout.getParent()).removeView(linearLayout);
        setContentView(linearLayout);
LinearLayout LinearLayout=(LinearLayout)findViewById(R.id.root\ll);
对于(int i=0;i<6 i++)
{
LinearLayout llInside=新的LinearLayout(本);
llInside.设置方向(线性布局.水平);
llInside.setLayoutParams(新的AbsListView.LayoutParams(
AblistView.LayoutParams.WRAP_内容,
AbsListView.LayoutParams.WRAP_CONTENT);
WebView wView=新的WebView(此);
TextView tVIDER=新的TextView(此);
wView.loadUrl(“file:///android_asset/a.gif");
setContentView(wView);
tviide.setText(“A”);
wView.setLayoutParams(新的AbsListView.LayoutParams(
600,
600));
tVIDEN.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,74);
if(wView.getParent()!=null)
((ViewGroup)wView.getParent()).removeView(wView);
if(tvInside.getParent()!=null)
((ViewGroup)TVIDER.getParent()).removeView(TVIDER);
linside.addView(wView);
llInside.addView(电视内部);
if(linside.getParent()!=null)
((ViewGroup)llInside.getParent()).removeView(llInside);
线性布局。添加视图(左侧);
//linearLayout.addView(wView);
//使程序可见
}
if(linearLayout.getParent()!=null)
((ViewGroup)linearLayout.getParent()).removeView(linearLayout);
setContentView(线性布局);

你的按钮等等。。。


你的按钮等等。。。

只需在高度上稍作改变..只需将所有内容包装成

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/root_ll"
    android:orientation="vertical"
    android:gravity="center_horizontal">

</LinearLayout>

并确保整个内容高度大于屏幕高度

编辑


因为网络视图是可滚动的。只需使用
LinearLayout
即可。此处无需使用ScrollView。

只需在高度上稍作更改即可。只需将所有内容设置为
环绕内容即可。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/root_ll"
    android:orientation="vertical"
    android:gravity="center_horizontal">

</LinearLayout>

并确保整个内容高度大于屏幕高度

编辑

因为网络视图是可滚动的。您只需使用
LinearLayout
即可。无需在此处使用ScrollView。

试试这个,它可以正常工作

   <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/root_ll"
        android:orientation="vertical"
        android:gravity="center_horizontal">

         <TextView
            android:id="@+id/txtHeaderTitle"
            android:layout_width="wrap_content"
            android:layout_height="1000dp"
            android:text="Hello World"
            android:textColor="@android:color/black"
            android:textSize="20sp" />

    </LinearLayout>

</ScrollView>

试试这个,它很管用

   <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/root_ll"
        android:orientation="vertical"
        android:gravity="center_horizontal">

         <TextView
            android:id="@+id/txtHeaderTitle"
            android:layout_width="wrap_content"
            android:layout_height="1000dp"
            android:text="Hello World"
            android:textColor="@android:color/black"
            android:textSize="20sp" />

    </LinearLayout>

</ScrollView>

您已使用:

android:layout\u height=“fill\u parent”

对于
滚动视图
使用:

android:layout\u height=“wrap\u content”

然后是工作

您已经使用了:

android:layout\u height=“fill\u parent”

对于
滚动视图
使用:

android:layout\u height=“wrap\u content”


然后是工作

setContentView()
的调用就是问题所在。该方法设置活动的布局。每次代码调用它时,它都会完全替换活动的内容,而您的
ScrollView
早就不存在了。删除发布代码中对
setContentView()
的所有调用,以及以下内容:

if(linearLayout.getParent()!=null)
    ((ViewGroup)linearLayout.getParent()).removeView(linearLayout);
对于动态创建的
视图
s,您还可以删除父
视图
s上的空检查,因为在添加父视图之前,它们不会有父视图

LinearLayout linearLayout= (LinearLayout) findViewById(R.id.root_ll);
for(int i = 0; i < 6; i++)
{
    LinearLayout llInside= new LinearLayout(this);
    llInside.setOrientation(LinearLayout.HORIZONTAL);
    llInside.setLayoutParams(new AbsListView.LayoutParams(
                                 AbsListView.LayoutParams.WRAP_CONTENT,
                                 AbsListView.LayoutParams.WRAP_CONTENT));

    WebView wView = new WebView(this);

    TextView tvInside = new TextView(this);
    wView.loadUrl("file:///android_asset/a.gif");

    tvInside.setText("A");

    wView.setLayoutParams(new AbsListView.LayoutParams(
                              600,
                              600));

    tvInside.setTextSize(TypedValue.COMPLEX_UNIT_SP, 74);

    llInside.addView(wView);
    llInside.addView(tvInside);

    linearLayout.addView(llInside);
}
LinearLayout LinearLayout=(LinearLayout)findViewById(R.id.root\ll);
对于(int i=0;i<6;i++)
{
LinearLayout llInside=新的LinearLayout(本);
llInside.设置方向(线性布局.水平);
llInside.setLayoutParams(新的AbsListView.LayoutParams(
AblistView.LayoutParams.WRAP_内容,
AbsListView.LayoutParams.WRAP_CONTENT);
WebView wView=新的WebView(此);
TextView tVIDER=新的TextView(此);
wView.loadUrl(“file:///android_asset/a.gif");
tviide.setText(“A”);
wView.setLayoutParams(新的AbsListView.LayoutParams(
600,
600));
tVIDEN.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,74);
linside.addView(wView);
llInside.addView(电视内部);
线性布局。添加视图(左侧);
}

setContentView()的调用是问题所在。该方法设置活动的布局。每次代码调用它时,它都会完全替换活动的内容,而您的
ScrollView
早就不存在了。删除发布代码中对
setContentView()
的所有调用,以及以下内容:

if(linearLayout.getParent()!=null)
    ((ViewGroup)linearLayout.getParent()).removeView(linearLayout);
对于动态创建的
视图
s,您还可以删除父
视图
s上的空检查,因为在添加父视图之前,它们不会有父视图

LinearLayout linearLayout= (LinearLayout) findViewById(R.id.root_ll);
for(int i = 0; i < 6; i++)
{
    LinearLayout llInside= new LinearLayout(this);
    llInside.setOrientation(LinearLayout.HORIZONTAL);
    llInside.setLayoutParams(new AbsListView.LayoutParams(
                                 AbsListView.LayoutParams.WRAP_CONTENT,
                                 AbsListView.LayoutParams.WRAP_CONTENT));

    WebView wView = new WebView(this);

    TextView tvInside = new TextView(this);
    wView.loadUrl("file:///android_asset/a.gif");

    tvInside.setText("A");

    wView.setLayoutParams(new AbsListView.LayoutParams(
                              600,
                              600));

    tvInside.setTextSize(TypedValue.COMPLEX_UNIT_SP, 74);

    llInside.addView(wView);
    llInside.addView(tvInside);

    linearLayout.addView(llInside);
}
LinearLayout LinearLayout=(LinearLayout)findViewById(R.id.root\ll);
对于(int i=0;i<6;i++)
{
LinearLayout llInside=新的LinearLayout(本);
llInside.设置方向(线性布局.水平);
llInside.setLayoutParams(新的AbsListView.LayoutParams(
AblistView.LayoutParams.WRAP_内容,
AbsListView.LayoutParams.WRAP_CONTENT);
WebView wView=新的WebView(此);
TextView tVIDER=新的TextView(此);
wView.loadUrl(“file:///android_asset/a.gif");
tviide.setText(“A”);
wView.setLayoutParams(新的AbsListView.LayoutParams(
600,
600));
tVIDEN.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,74);
linside.addView(wView);
llInside.addView(电视内部);
线性布局。添加视图(左侧);
}

scrollview@RanjitPati已编辑问题能否将scrollView高度更改为wrap_内容scrollView中没有控制按钮,因此它可能如何工作?