【问题标题】:Custom ViewPager giving an exception自定义 ViewPager 给出异常
【发布时间】:2015-07-27 17:53:39
【问题描述】:

我正在尝试添加自定义 ViewPager 以启用/禁用滑动功能,但我遇到了错误。我在一个单独的类中实现了 custom_viewpager 并扩展了ViewPager

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center_vertical" >

    <com.example.sumit.myapplication.custom_viewpager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/pager_threee"
        xmlns:android="http://schemas.android.com/apk/res/android" />
</LinearLayout>

相关的JAVA代码为:

import android.support.v4.view.ViewPager;

ViewPager vp;
private static double latitude = 0.0;
private static double longitude = 0.0;
private static String Country = "";
private static String Locality = "";
private static String AreaCode = "";
private static String My_Id = "0";

List<Fragment> fragments = new ArrayList<Fragment>();
Fragment frag_public_list;
Fragment frag_users_list;
Fragment frag_profile;
Fragment frag_photos;
adapter _adapter;

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

    frag_users_list = new users_list();

    Bundle bundle = new Bundle();
    bundle.putDouble("lat", latitude);
    bundle.putDouble("long", longitude);
    bundle.putString("Country", Country);
    bundle.putString("Locality", Locality);
    bundle.putString("AreaCode", AreaCode);
    bundle.putString("My_Id", My_Id);

    frag_users_list.setArguments(bundle);
    frag_public_list = new public_chat();

    fragments.add(frag_public_list);
    fragments.add(frag_users_list);

    vp = (ViewPager) findViewById(R.id.pager_threee);

我得到的例外是:

Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sumit.myapplication/com.example.sumit.myapplication.Main_Users_Page}: android.view.InflateException: Binary XML file line #7: Error inflating class com.example.sumit.myapplion.custom_viewpager

custom_viewpager 类是:

package com.example.sumit.myapplication;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

/**
 * Created by Sumit on 7/27/2015.
 */
public class custom_viewpager extends ViewPager {

    private boolean enabled;

    public custom_viewpager(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (this.enabled) {
            return super.onTouchEvent(event);
        }

        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if (this.enabled) {
            return super.onInterceptTouchEvent(event);
        }

        return false;
    }

    public void setPagingEnabled(boolean enabled) {
        this.enabled = enabled;
    }
}

【问题讨论】:

  • 错误似乎与您的 custom_viewpager 类有关,因此您还必须包含该代码。
  • 好的,我现在已经添加了 custom_viewpager 类。

标签: android exception android-viewpager


【解决方案1】:

您需要为 custom_viewpager 类添加以下构造函数才能正确膨胀:

public custom_viewpager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public custom_viewpager(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

【讨论】:

  • 还有titlestrip..我只是扩展com.package.custom_adapter.PagerTitleStrip吗?
  • @SumitBahadur 你最好在一个新问题中提出这个问题,因为我不确定答案。将此答案标记为已接受并创建一个新问题。
猜你喜欢
  • 1970-01-01
  • 2019-05-20
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 2011-01-16
相关资源
最近更新 更多