達成しようとしています
- より良いUIxを提供するために
layout_height="wrap_parent"
&を持つGridViewの後にボタンを追加します。layout_width="fill_parent"
制約:
Facebook-Graph-ApiからフェッチしたImageViewを、ImageViewで構成されるGridViewに追加します。
画像がフェッチされたら、GridViewのボタンを最後に追加します。
試してみました
1。AysncTaskのonPostExecute()でボタンの可視性をVisibleに設定すると、画像を取得するのに役立ちます
2。ScrollListenerでボタンの可視性をVisibleに設定します。これは、スクロールがGridViewの最後、つまりGridView内の最後の画像に到達した場合に実行されます。
ただし、GridViewの最後にButtonが表示されていません。どうして?
私のXMLレイアウト::
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/rootview"
>
<Button
android:id="@+id/fbconnect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/connectfb"
android:layout_centerHorizontal="true"
android:visibility="visible"
/>
<GridView
android:id="@+id/gridphoto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:columnWidth="80dp"
android:numColumns="auto_fit"
android:verticalSpacing="2dp"
android:horizontalSpacing="2dp"
android:stretchMode="columnWidth"
/>
<Button
android:id="@+id/loadmore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/gridphoto"
android:visibility="gone"
android:text="@string/load_more"
/>
</RelativeLayout>
コード::AysncTaskを介して画像を取得し、onPostExecuteで可視性を設定して、GridViewの最後にLoadMoreボタンを追加します。
protected void onPostExecute(Void result) {
loadMore.setVisibility(View.VISIBLE); // Load More Button
}
コード::GridViewにScrollListenerを実装する->最下部に到達するかどうかを確認してから、[さらに読み込む]ボタンの表示を変更します。
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (gridView.getLastVisiblePosition() + 1 == increasingItem) // Checking if it reaches bottom of GridView or not. It prefectly runs. Checked via Logging into StackTrace.
{
loadMore.setVisibility(View.VISIBLE); // Load More Button
}
}