0

ViewFlipper内のいくつかのWebビューを使用してテキストを表示しているので、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" />

これは、私が排除したい1つの小さな煩わしさを除いて、うまく機能します。アプリを開いたときに初めてWebビューで子ビューに切り替えると、Webビューの高さがまだ設定されていないように見えるため、一種のアコーディオン効果が発生します(したがって、Webビューはすぐに所定の位置にスライドして押し下げられますビューの残りの部分)。次に、Webビューを使用して次の子ビューに移動すると、その子ビューでも同じことが起こります。前のビューに戻ると、ビューがすでに完全に構​​築されていても問題なく機能します。関連するかどうかはわかりませんが、onCreate中にLogCatでWebコアの警告が表示されます

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

Webビューを適切な高さ/幅に設定して、ビューに到達したときにビューにジャンプしないようにするにはどうすればよいですか?

4

2 に答える 2

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 に答える
0

次のようなオリエンテーションを取得できます。

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

int height;

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