0

だから私はリストビューを使用しています(実際にはPullToRefresh

ビューが親を埋めるように指定すると、実際には画面を超えます。スクロールバーが消えるのを見てこれに気づきましたが、まだ少しスクロールできます。

xml での私のビューは次のとおりです。

<eu.erikw.PullToRefreshListView
    android:id="@+id/transactionList"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_column="0"
    android:layout_gravity="top"
    gridlayout:layout_columnSpan="2"
    gridlayout:layout_row="1"
    android:background="@android:color/white"
    android:cacheColorHint="@android:color/white"
    android:isScrollContainer="false" />

ハックとして、次のコードを使用してGalaxy Nexusでこれを修正できます.Galxay SIIで表示すると画面の下部にギャップがあるため、この修正はデバイス固有です. 私はそれがピクセル密度と関係があると感じています。

以下の 290 の値は、元は 120 だったことに注意してください。これは、画面上部のビューの高さを合わせたものです。次に、完璧にフィットするように290に変更しました。余分な170がどこから来たのかわかりません。

timelineList = (PullToRefreshListView)getActivity().findViewById(R.id.timelineList);        

    WindowManager wm = (WindowManager)getActivity().getSystemService(Context. WINDOW_SERVICE);
    int height = wm.getDefaultDisplay().getHeight() - 290;
    int width = wm.getDefaultDisplay().getWidth();

    GridLayout.LayoutParams glp = new GridLayout.LayoutParams(); //LayoutParams.FILL_PARENT,height/2);
    glp. height = height;
    glp. width = width;

    timelineList .setLayoutParams(glp);

なぜこれが起こっているのか、またはすべてのデバイスでそれを修正する方法についてのアイデアはありますか?

更新: フル レイアウト ファイル

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:gridlayout="http://schemas.android.com/apk/res/com.product.package"
    android:id="@+id/content_frame"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg_default_2x"
    android:isScrollContainer="false"
    android:orientation="vertical" >

    <include
        android:layout_gravity="top"
        layout="@layout/header_bar" />

    <ProgressBar
        android:id="@+id/prgLoading"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <com.gridlayout.GridLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="top"
            android:layout_marginTop="45dip"
            gridlayout:columnCount="2"
            gridlayout:rowCount="2" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="75dp"
                android:layout_column="0"
                gridlayout:layout_columnSpan="2"
                gridlayout:layout_row="0"
                gridlayout:layout_rowSpan="1"
                android:background="@drawable/profile_bg_2x"
                android:contentDescription="@string/bg_image" >
            </ImageView>

            <ImageView
                android:id="@+id/imgAvatar"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_column="0"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="11dip"
                gridlayout:layout_row="0"
                android:background="#FFFFFF"
                android:contentDescription="@string/Product"
                android:src="@drawable/profile_photo_placeholder" />

            <ImageView
                android:id="@+id/imgProductLogo"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_column="1"
                android:layout_gravity="right"
                android:layout_marginRight="10dp"
                android:layout_marginTop="11dip"
                gridlayout:layout_row="0"
                android:contentDescription="@string/Product"
                android:src="@drawable/Productlogo" />

            <ListView
                android:id="@+id/timelineList"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_gravity="top"
                gridlayout:layout_columnSpan="2"
                gridlayout:layout_row="1"
                android:background="@android:color/white"
                android:cacheColorHint="@android:color/white"
                android:fastScrollEnabled="false" />

            <TextView
                android:id="@+id/timelineEmptyMessage"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_column="0"
                android:layout_marginLeft="25dp"
                android:layout_marginRight="25dp"
                android:layout_marginTop="50dp"
                gridlayout:layout_columnSpan="2"
                gridlayout:layout_row="1"
                android:gravity="center"
                android:text="@string/timeline_blank_message"
                android:textColor="@color/purple_text"
                android:visibility="invisible" />
        </com.gridlayout.GridLayout>
    </LinearLayout>

</FrameLayout>
4

2 に答える 2

0

次のように、リストビューを GridLayout の外に移動することで問題を修正しました。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:gridlayout="http://schemas.android.com/apk/res/com.product.package"
    android:id="@+id/content_frame"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg_default_2x"
    android:isScrollContainer="false"
    android:orientation="vertical" >

    <include
        android:layout_gravity="top"
        layout="@layout/header_bar" />

    <ProgressBar
        android:id="@+id/prgLoading"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <com.gridlayout.GridLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="top"
            android:layout_marginTop="45dip"
            gridlayout:columnCount="2"
            gridlayout:rowCount="2" >

            <!-- ## OTHER VIEWS HERE -->


        </com.gridlayout.GridLayout>

        <ListView
            android:id="@+id/timelineList"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:layout_gravity="top"
            gridlayout:layout_columnSpan="2"
            gridlayout:layout_row="1"
            android:background="@android:color/white"
            android:cacheColorHint="@android:color/white"
            android:fastScrollEnabled="false" />

        </LinearLayout>

</FrameLayout>
于 2012-11-02T12:49:00.697 に答える
0

たとえば、同じバグがある場合は、他の PullToRefresh 実装を使用してみることができます。その場合、PullToRefreshListView の開発者に問題を報告し、他のライブラリを使用する必要があります。

于 2012-11-02T10:05:38.570 に答える