「已注销」 2016-06-30 06:27 采纳率: 0%
浏览 3373

为什么在fragment里面放的RecyclerView 没写加载会自动加载出来?

直接上代码
把加载fragment写在监听里可是程序一运行就已经显示了

package com.example.bmvod.fragment;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private GalleryAdapter mAdapter;
private List mDatas;
private FirstFragment firstFragment;
private SecondFragment secondFragment;
// private ThirdFragment thirdFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDatas();
mRecyclerView = (RecyclerView) findViewById(R.id.recid1);

    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    mRecyclerView.setLayoutManager(linearLayoutManager);

    mAdapter = new GalleryAdapter(this, mDatas);
    mAdapter.setOnItemClickLitener(new GalleryAdapter.OnItemClickLitener() {
        @Override
        public void onItemClick(View view, int position) {
            FragmentManager fm = getFragmentManager();
            FragmentTransaction transaction = fm.beginTransaction();
            switch (position) {
                case 0:
                    firstFragment = new FirstFragment();
                    transaction.add(R.id.fragment, firstFragment);
                    hideAllFragments(transaction);
                    transaction.show(firstFragment);
                    break;
                case 1:

                    secondFragment = new SecondFragment();
                    transaction.add(R.id.fragment, secondFragment);
                    hideAllFragments(transaction);
                    transaction.show(secondFragment);

                    break;
            }
            transaction.commit();
        }
    });

    mRecyclerView.setAdapter(mAdapter);
}

private void hideAllFragments(FragmentTransaction ft) {
    if (firstFragment != null) {
        ft.hide(firstFragment);
    }

    if (secondFragment != null) {
        ft.hide(secondFragment);
    }

}

private void initDatas() {
    mDatas = new ArrayList<Integer>(Arrays.asList(R.drawable.bottom1,
            R.drawable.bottom2, R.drawable.bottom3, R.drawable.bottom4, R.drawable.bottom5,
            R.drawable.bottom1, R.drawable.bottom2, R.drawable.bottom3, R.drawable.bottom4));
}

private void setDefaultFragment() {
    FragmentManager fm = getFragmentManager();
    FragmentTransaction transaction = fm.beginTransaction();
    firstFragment = new FirstFragment();
    transaction.replace(R.id.fragment, firstFragment);
    transaction.commit();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

}


package com.example.bmvod.fragment;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**

  • Created by bmvod on 2016/6/29.
    */
    public class FirstFragment extends Fragment {

    private RecyclerView mRecyclerView;
    private GalleryAdapter2 mAdapter;
    private List mDatas;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.firstfragmentlayout, container, false);
    initDatas2();
    mRecyclerView = (RecyclerView) view.findViewById(R.id.fragmengrecv1);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
    linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    mRecyclerView.setLayoutManager(linearLayoutManager);
    mAdapter = new GalleryAdapter2(getActivity(), mDatas);
    mRecyclerView.setAdapter(mAdapter);
    return view;
    }

    private void initDatas2() {
    mDatas = new ArrayList(Arrays.asList(R.drawable.smalltop1,
    R.drawable.smalltop2, R.drawable.smalltop3, R.drawable.smalltop4, R.drawable.smalltop5,
    R.drawable.smalltop1, R.drawable.smalltop2, R.drawable.smalltop3, R.drawable.smalltop4));
    }

}


  • 写回答

1条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2016-06-30 06:40
    关注

    当然了,你设置了setAdapter,而adapter里设置了数据源

    评论

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题