在横向模式下,ScrollView中的ListView和WebView无法按预期工作

时间:2015-10-01 09:59:36

标签: android android-listview webview scrollview landscape

我知道我无法在ListView内使用ScrollView,因为ScrollView在这种情况下得到了关注,ListView变得不可滚动。但我有一个程序可以滚动ListViewScrollView。(按照Mr. Arshu的优秀答案)

我的activity_main.xml

的结构
<RelativeLayout    >

<ScrollView 
    android:fillViewport="true"  >

    <LinearLayout   >

        <TextView />

        <TextView  />

        <LinearLayout   >

            <Button
                android:id="@+id/button1"   />

            <Button
                android:id="@+id/button2"   />

        </LinearLayout>

        <RelativeLayout 
            android:visibility="gone"  >

            <WebView />

            <ImageView   />

        </RelativeLayout>

        <LinearLayout   >

            <TextView  />

            <TextView />

            <TextView />

            <TextView />

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

<LinearLayout 
    android:layout_alignParentBottom="true" >

    <ImageView />

    <Button />

    <ListView
        android:visibility="gone"  />
</LinearLayout>

</RelativeLayout>

当它处于纵向模式时,此功能非常有效。View中的每个Activity都有其自己的用途。

但我在Landscape模式下有两个问题。 [我无法使用activity-land,因为我在WebView 中播放视频

  1. 单击按钮时,ListView可见。
  2. portrait模式下,它显示所有项目(例如:10)。当我将模式更改为横向时,ListView不会完全滚动,它只显示5或5 1/2项。

    2. WebView点击后启用了Button点可见性。

    如果假设我以纵向模式启用webview并开始播放视频,如果我将模式更改为Landscape,则WebView会消失,但视频不会停止。我可以听到视频。

    我已尝试使用view来控制savedInstanceState

    代码段:

    button1.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            if(savedInstanceState==null)
            {
                String uriPath = "http://player.vimeo.com/***/****";
                Layout.setVisibility(View.VISIBLE);
                myWebView.setWebViewClient(new WebViewClient());
                myWebView.getSettings().setJavaScriptEnabled(true);
                myWebView.loadUrl(uriPath);
            }else {
                Layout.setVisibility(View.VISIBLE);
                myWebView.restoreState(savedInstanceState);
            }
        }
    });
    

    ListView的图片:

    纵向:

    enter image description here

    在风景中:

    enter image description here

    如何解决这两个问题。

    请帮助。

    谢谢。

2 个答案:

答案 0 :(得分:1)

你如何处理你自己的方向变化 我的意思是 break 将上述属性添加到清单文件中的android:configChanges="keyboardHidden|orientation|screenSize"标记。

答案 1 :(得分:0)

我希望您的观点有助于解决您的问题。

department_id