2015-12-29 49 views
0

我有一個簡單的GridView/FragementgetChildCount()返回0 - GridView控件/片段

公共類member_list_image_fragment擴展片段實現AdapterView.OnItemClickListener {

//Current member list (array of member details from backend) 
public static final String KEY_MEMBER_LIST = "member_list"; 

//Application's context 
Context activity_context; 

private ArrayAdapter<String> gridAdapter; 
// gridView gridAdapter; 

private GridView gridView; 

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    //get the activity context so it can be passed to the adapter 
    activity_context = getActivity().getApplicationContext(); 

    return; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    //define the view (home_screen_member_list_photo) that needs to be displayed when this fragment is called 
    View view = inflater.inflate(R.layout.home_screen_member_list_photo, container, false); 


    GridView grid = (GridView) view.findViewById(R.id.member_list_image_fragment_gridview); 

    grid.setAdapter(new member_list_image_grid_adapter(activity_context));    

    this.gridView = grid; 

    return view; 
} 




@Override 
public void onActivityCreated(Bundle savedInstanceState){ 
    super.onActivityCreated(savedInstanceState); 

    GridView memberGridView = this.gridView; 
    GridView mygridview = (GridView) getView().findViewById(R.id.member_list_image_fragment_gridview); 
    GridView myactgridview = (GridView) getActivity().findViewById(R.id.member_list_image_fragment_gridview); 

    Log.w("1", String.valueOf(memberGridView.getFirstVisiblePosition())); 
    Log.w("2", String.valueOf(memberGridView.getLastVisiblePosition())); 
    Log.w("child",String.valueOf(memberGridView.getChildCount())); 
    Log.w("child - mygrid",String.valueOf(mygridview.getChildCount())); 
    Log.w("child - myactgrid", String.valueOf(myactgridview.getChildCount())); 



    for(int visiblePosition = memberGridView.getFirstVisiblePosition(); visiblePosition <= memberGridView.getLastVisiblePosition(); visiblePosition++) { 

     View member_row_view = memberGridView.getChildAt(visiblePosition); 

     // Reset the ImageView   

     Log.w("image", "reset done"); 
    } 

    return; 
} 

}

我想通過GridView中的所有項目循環並更改圖像圖標(這是我想要這樣做的一個原因)。但無論我如何努力獲得GridView和在onActivityCreated相關getChildCount,他們返回0

我曾嘗試在onActivityCreated-

Log.w("child",String.valueOf(memberGridView.getChildCount())); 
Log.w("child - mygrid",String.valueOf(mygridview.getChildCount())); 
Log.w("child - myactgrid",String.valueOf(myactgridview.getChildCount())); 

下他們都返回0,在模擬器上,我能夠看到完全用GridView顯示的所有元素的屏幕。我究竟做錯了什麼?

回答

0

這是因爲只要網格不顯示給用戶,您的網格就不會有子網。 getChildCount將返回可見子項的數量。