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中没有控制按钮,因此它可能如何工作?