【发布时间】:2015-10-02 20:56:42
【问题描述】:
我知道我不能在ScrollView 中使用ListView,因为在这种情况下ScrollView 获得焦点并且ListView 变得不可滚动。但是我有一个程序可以同时滚动ListView 和ScrollView。(跟随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>
这在纵向模式下非常有效。Activity 中的每个 View 都有自己的用途。
但我在Landscape 模式下有两个问题。
[我不能使用activity-land,因为我正在WebView播放视频]
- 当我单击按钮时,
ListView可见。
在portrait 模式下,它显示所有项目(例如:10)。当我将模式更改为横向时,ListView 不会完全滚动,它只显示 5 或 5 1/2 个项目。
2.WebView 在点击Button 时启用可见性。
如果假设我在纵向模式下启用 webview 并且视频开始播放,并且在两者之间如果我将模式更改为 Landscape 那么 WebView 会消失但视频不会停止。我能听到视频。
我尝试使用savedInstanceState控制view。
代码sn-p:
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的图片:
纵向:
横向:
如何解决这两个问题。
请帮忙。
谢谢。
【问题讨论】:
标签: android android-listview webview scrollview landscape