0

ニュース項目を表示するリスト ビューがあります。

各ニュース項目には、画像が含まれる場合と含まれない場合があります。

画像が含まれている場合は、クールです。

画像が含まれていない場合は、画像のプレースホルダーを非表示に設定し、内部に含まれるフレーム レイアウトのサイズを変更します。

最初にリスト ビューの画像を表示します。

ここに画像の説明を入力

ご覧のとおり、画像付きのニュース項目は正常に機能しています。でも画像のないネタはありません!!。

私の XML レイアウト ファイルでは、ブログ/ニュース テキスト ビューの高さを 30 dp に設定しています。

        <TextView
            android:layout_width="match_parent"
            android:layout_height="30dp"

したがって、画像が存在しない場合は、次のコードを実行します。

    if(no image is loaded)

        nimage.setVisibility(View.GONE); // set image placeholder to hidden
        // change frame layout height to 30dp (size of News/Blog)
        flayout1.getLayoutParams().height = (int)convertPixelsToDp(30, getContext()); 
        flayout1.requestLayout();

私のconvertPixelsToDp()機能は次のようなものです:

public static float convertPixelsToDp(float px, Context context){
    Resources resources = context.getResources();
    DisplayMetrics metrics = resources.getDisplayMetrics();
    float dp = px / (metrics.densityDpi / 160f);
    return dp;
}

このコードは機能するはずです...と思います。しかし、明らかに、上に見られるように、高さが正しく設定されていません。つまり、TextView の一部が切り取られています。

問題は、小さい画面で実行するとかなりうまく動作しますが、画面サイズに依存しない (dp を使用) べきではないということです... 変換機能に問題があるのでしょうか?

どんな助けでも大歓迎です!

4

1 に答える 1

1

TextView のレイアウトの高さとして wrap_content を使用します。これで問題が解決するはずです。

于 2015-07-24T13:12:03.863 に答える