小编mml*_*loo的帖子

如何将RecyclerView放在NestedScrollView中?

通过创建NestedScrollView,您可以将滚动视图放在另一个滚动视图中,只要这些视图正确实现NestedScrollingChildNestedScrollingParent.

(这是一个不错的设计模式"Ian Lake(来自Google)实际上建议在RecyclerView这里放置一个nestedscrollview:plus.google.com/u/0/+AndroidDevelopers/posts/9kZ3SsXdT2T")

我想将RecyclerView放在NestedScrollView中,幸运的是RecyclerView实现了NestedScrollingChild,因此您可以将它放在NestedScrollView中.

public class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild
Run Code Online (Sandbox Code Playgroud)

我看过这些帖子:

如何在NestedScrollView中使用RecyclerView?

NestedScroll与NestedScrollView,RecyclerView(水平),在CoordinatorLayout内

但是大多数投票解决方案的问题是,它调用所有项目,RecyclerView例如,如果它是无尽的RecyclerView,当用户到达列表的末尾时,您想要发出网络请求,然后使用该解决方案RecyclerView重复调用服务器因为它会自动到达最后一项RecyclerView.

无论如何,如何设置参数,以便我可以放入RecyclerView内部NestedScrollView.(实际上我想将一个像framelayout或relativelayout这样的视图组作为nestedscrollview的单个childe然后我想将recyclelerview放在framelayout或relativelayout中)

当我放在RecyclerView里面NestedScrollView没有什么可以显示.


要创建示例项目,您可以使用cheesesquare并更改CheeseDetailActivity为具有RecyclerView.


虽然BNK的答案不正确,但BNK已经尝试了很多.所以我授予他赏金.还在寻找好的解决方案....

android android-recyclerview nestedscrollview

55
推荐指数
3
解决办法
4万
查看次数

StaggeredGridLayoutManager和移动项目

我创建了一个非常简单的项目,StaggeredGridLayoutManager通过recyclerview 显示28个图像.但是当我滚动Recyclerview时,它会移动项目,例如从左向右移动或交换左右列.

代码:

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

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;


public class MainActivity extends Activity {


    String mImageDir;
    private RecyclerView mRecyclerView;
    private StaggeredGridLayoutManager mLayoutManager;



    MyRecyclerAdapter myRecyclerAdapter;
    List<ImageModel> mImageList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);   
        mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview_rootview);
        mLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);     
        mLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);        
        mRecyclerView.setLayoutManager(mLayoutManager);
        mRecyclerView.setHasFixedSize(false);
        mImageList = new ArrayList<ImageModel>();
        for (int i = 1; i < 29 ; i++) {
            ImageModel img = new ImageModel();
            img.setTitle("Image No " + i);
            int drawableResourceId …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter staggeredgridlayout android-recyclerview

23
推荐指数
5
解决办法
2万
查看次数

为什么我没有内存不足的例外?

我在可绘制文件夹中有一个高分辨率图像(2588*1603).如果我使用下面的代码(1)为imageView设置它我没有得到OOM异常和按预期分配的图像:

public class MainActivity extends ActionBarActivity{


    private ImageView mImageView;

    int mImageHeight = 0;
    int mImageWidth  = 0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

      mImageView = (ImageView) findViewById(R.id.imageView);
      mImageView.setScaleType(ScaleType.FIT_CENTER);

      BitmapFactory.Options sizeOption = new BitmapFactory.Options();
      sizeOption.inJustDecodeBounds = true;
      BitmapFactory.decodeResource(getResources(), R.drawable.a, sizeOption);
      mImageHeight = sizeOption.outHeight;
      mImageWidth  = sizeOption.outWidth; 

      mImageView.post(new Runnable() {
          @Override
          public void run() {
              try {
                BitmapRegionDecoder bmpDecoder = BitmapRegionDecoder
                          .newInstance(getResources().openRawResource(R.drawable.a),true);
            Rect rect = new Rect(0,0,mImageWidth, mImageHeight);
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
            options.inDensity = getResources().getDisplayMetrics().densityDpi;
            Bitmap …
Run Code Online (Sandbox Code Playgroud)

android bitmap out-of-memory android-drawable bitmapregiondecoder

13
推荐指数
1
解决办法
606
查看次数

Fragment中的Android getSupportFragmentManager NULL指针异常

我在点击导航抽屉项目后尝试使用TabBar和View Pager显示新片段.

问题是新创建的Fragment导致NULL指针异常

viewPager.setAdapter(mAdapter);
Run Code Online (Sandbox Code Playgroud)

我被片段中的标签放在几个小时的可滑动视图上,但没有运气,有人可以帮我解决这个问题吗?

对于可浏览的视图,我遵循了本教程:

http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

片段代码在这里:

import android.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import eu.com.mycompany.adapter.TabsPagerAdapter;

public class Fragment_AboutApplication extends Fragment implements ActionBar.TabListener {

    public Fragment_AboutApplication(){}
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Top Rated", "Games", "Movies" };

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

        View rootView = inflater.inflate(R.layout.fragment_about_app, container, false);


        // Initilization
        viewPager = (ViewPager) getActivity().findViewById(R.id.pager); …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-fragments android-viewpager

6
推荐指数
1
解决办法
4710
查看次数

Json对象的Volley Post方法

data={
    "request": {
       "type": "event_and_offer",
       "devicetype": "A"
    },
    "requestinfo": {
       "value": "offer"
      }
}
Run Code Online (Sandbox Code Playgroud)

如何从volley plz帮助发布此请求

            JsonObjectRequest jsonObjReq = new JsonObjectRequest(
            Request.Method.POST,url, null   ,
            new Response.Listener<JSONObject>() {




                @Override
                public void onResponse(JSONObject response) {
                    Log.d(TAG, response.toString());

                    msgResponse.setText(response.toString());
                    hideProgressDialog();
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d(TAG, "Error: " + error.getMessage());
                    hideProgressDialog();
                }
            }) {

        /**
         * Passing some request headers
         * */
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>(); …
Run Code Online (Sandbox Code Playgroud)

post android android-volley jsonobject

6
推荐指数
1
解决办法
2万
查看次数

android getContentResolver().notifyChange()不重启我的加载器

代码:

首先是我的Uris

public static final String PACKAGE    = "my.url.contentprovider";

public static final String TABLE_NAME = "NetworkTransaction";

public static final String AUTHORITY  = PACKAGE + ".NetTransContentProvider";

public static final Uri BASE_URI = Uri.parse("content://"+AUTHORITY);

public static final Uri CONTENT_URI_ANY_OBSERVER  = Uri.withAppendedPath(BASE_URI,TABLE_NAME+"/*");

public static final Uri CONTENT_URI_FIND_BY_ID  = Uri.withAppendedPath(BASE_URI,TABLE_NAME+"/FIND/ID");

public static final Uri CONTENT_URI_INSERT_OR_REPLACE_BY_ID    = Uri.withAppendedPath(BASE_URI,TABLE_NAME+"/INSERT/REPLACE/ID"); 

public static final Uri CONTENT_URI_INSERT_BY_ID   = Uri.withAppendedPath(BASE_URI,TABLE_NAME+"/INSERT/ID"); 
Run Code Online (Sandbox Code Playgroud)

和我的活动代码加载器:

@Override
protected void onResume() {
    super.onResume();
getSupportLoaderManager().restartLoader(NET_TRANS_LOADER_ID,mBundle,this).forceLoad();

}

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
    Uri uri = …
Run Code Online (Sandbox Code Playgroud)

android android-contentresolver android-contentprovider android-loadermanager android-loader

4
推荐指数
1
解决办法
2041
查看次数