0

我在 ViewFlipper 中使用一些 webviews 来显示一些文本,这样我就可以获得完整的理由和 html 的一些其他方面。

WebView welcomeText = new WebView(this);
welcomeText.setVerticalScrollBarEnabled(false);
welcomeText.setBackgroundColor(0x00000000);
((LinearLayout) findViewById(R.id.welcomeText)).addView(welcomeText);
welcomeText.loadData(getString(R.string.welcome_text), "text/html", "utf-8");

和xml:

<LinearLayout
android:id="@+id/welcomeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dip" />

除了我希望消除的一个小烦恼之外,这很有效。当我在打开应用程序时第一次切换到带有 webview 的子视图时,webview 的高度似乎还没有设置,所以它会导致一种手风琴的影响(所以 webview 会快速滑动到位,按下其余的视图)。然后使用 webview 进入下一个子视图,同样的情况也发生在那个子视图上。回到前一个视图然后可以使用已经完全构建的视图。我不确定它是否相关,但我在 onCreate 期间也收到 LogCat 中的 webcore 警告

"06-04 19:43:48.176: W/webcore(8416): Can't get the viewWidth after the first layout"

如何将 webview 设置为已设置正确的高度/宽度,以便当我到达视图时它不会跳入视图?

4

2 回答 2

0

你可以得到这样的方向:

int orientation=getResources().getConfiguration().orientation;

int height;

if(orientation==Configuration.ORIENTATION_LANDSCAPE){
    height=50;
}
else {
    height=100;
}
于 2012-06-04T20:31:34.857 回答
0

您需要添加带有布局参数的 WebView... 示例:

WebView welcomeText = new WebView(this);
welcomeText.setVerticalScrollBarEnabled(false);
welcomeText.setBackgroundColor(0x00000000);

float density = getResources().getDisplayMetrics().density;
int WEBVIEW_HEIGHT=100;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, (int) (WEBVIEW_HEIGHT*density));

((LinearLayout) findViewById(R.id.welcomeText)).addView(welcomeText,layoutParams);
welcomeText.loadData(getString(R.string.welcome_text), "text/html", "utf-8");
于 2012-06-04T18:30:02.393 回答