私は1つの固定ヘッダーとリストビューの上にプッシュアップして隠すことができるx個のプッシュアップビューを含むカスタムlistViewを持っています。固定ヘッダ付きのカスタムListViewで、パディングを設定するときにJankが発生する
画像を添付して説明しています。 "黒い検閲"のために申し訳ありません、顧客のロゴなどを隠すだけです。
私の問題は、固定ヘッダービューにパディングを追加すると、その背後に浮かぶリストビュー項目を取得することです。
固定ヘッダービューは、PinnedHeaderListView、つまりlistviewの静的ビューとヘッダーを検索する場合と同じ手法で実装されます。
パディングを有効にする方法が見つかっています。これは、固定ヘッダーと同じパディングを実際のlistViewに適用することですが、静的ヘッダーが表示されている場合にのみ適用されます。
しかし、setPaddingを呼び出すと、削除したいJunkがかなり目立つようになります。 誰もこのジャンクを取り除く方法を知っていますか?
私はこのジャンクを表示しない単純なビューとダミーデータを持つ単純なアプリケーションを持っているので、ジャンクの量はセルレイアウトの複雑さに依存しています。ここではまず
private void updateIfShouldShowStaticHeaderView() {
//unfortunately setting the padding of the listView causes JANK.
//any ideas?
int bottomOfFloatingHeader = floatingHeader.getBottom();
if (bottomOfFloatingHeader < mHeaderViewHeight) {
staticHeaderViewIsVisible = true;
staticHeader.setVisibility(View.VISIBLE);
//need to set padding of listView to avoid having list-view items float behind my padded static header
setPadding(0, staticHeader.getPaddingTop(), 0, getPaddingBottom());
} else {
staticHeaderViewIsVisible = false;
staticHeader.setVisibility(View.INVISIBLE);
//need to set padding of listView to avoid having list-view items float behind my padded static header
setPadding(0, 0, 0, getPaddingBottom());
}
}
ここで押し上げられたヘッダ
を示す画像は、物事がパディングされた静的固定ビューの後ろに描画されるかを示す画像です。 listViewのパディングを調整するとインテントとして機能することに気づくはずですが、静的ヘッダービューをオン/オフするときにJank(スローダウン)が発生します。
+1すごい素敵な画像、クールなアートワーク:) –
plzそれはあなたの質問からですが、どのようにあなたのリストビューとアプリケーションのレイアウトを整理しましたか教えていただけますか? – Angelika