修复Viewpager的Andr​​oid浏览 [英] Fix Viewpager Android Views

查看:271
本文介绍了修复Viewpager的Andr​​oid浏览的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个标签式的Andr​​oid应用程序viewpager看到正在运行的应用程序的图像截图

http://i.stack.imgur.com/zhlKF.png

问题是,我看到的空白页,而不是我的XML布局片段类参考,
什么是写XML文件的正确方法由Viewpager支持
下面是XML布局code
first1.xml

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent>
    <的TextView
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_centerHorizo​​ntal =真
        机器人:layout_centerVertical =真
        机器人:文字=HOLA MUNDO/>< / RelativeLayout的>

Frag1.java

 包com.example.aliencomputing.kakamila;进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;公共类Frag1扩展片段{
    @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
        查看查看= inflater.inflate(R.layout.first1,集装箱,FALSE);
        返回视图。
    }
}

Frag2.java

 包com.example.aliencomputing.kakamila;进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;公共类Frag2扩展片段{
    @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
        查看查看= inflater.inflate(R.layout.first2,集装箱,FALSE);
        返回视图。
    }
}

Frag3.java

 包com.example.aliencomputing.kakamila;进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;公共类Frag3扩展片段{
    @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
        查看查看= inflater.inflate(R.layout.first3,集装箱,FALSE);
        返回视图。
    }
}

下面是主要活动code
MainActivity.java

 包com.example.aliencomputing.kakamila;进口android.support.v4.app.FragmentActivity;
进口android.support.v4.view.ViewPager;
进口android.os.Bundle;公共类MainActivity扩展FragmentActivity {    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);        ViewPager viewPager =(ViewPager)findViewById(R.id.pager);        viewPager.setAdapter(新ViewPagerAdapter(getSupportFragmentManager()));    }}

和ViewPagerAdapter.java

 包com.example.aliencomputing.kakamila;进口android.content.Context;
进口android.support.v4.app.Fragment;
进口android.support.v4.app.FragmentManager;
进口android.support.v4.app.FragmentPagerAdapter;
公共类ViewPagerAdapter扩展FragmentPagerAdapter {    最终诠释PAGE_COUNT = 3;
    //选项卡标题
    私人字符串tabtitles [] =新的String [] {TAB1,TAB2,TAB3};
    上下文语境;    公共ViewPagerAdapter(FragmentManager FM){
        超(FM);
    }    @覆盖
    公众诠释的getCount(){
        返回PAGE_COUNT;
    }    @覆盖
    公共片段的getItem(INT位置){
        开关(位置){
            情况下0:
                Frag1 frag1 =新Frag1();
                返回frag1;
            情况1:
                Frag2 frag2 =新Frag2();
                返回frag2;            案例2:
                Frag3 frag3 =新Frag3();
                返回frag3;
        }
        返回null;
    }    @覆盖
    公共CharSequence的getPageTitle(INT位置){
        返回tabtitles [位置]
    }
}


从您发布的activity_main解决方案

:您所需要的viewpager以外的ViewGroup中,你需要做的pagertabstrip包裹内容的高度。

您发布了Java code相貌端正给我。

I have Android application with a tabbed viewpager see the image screenshot of the running app

http://i.stack.imgur.com/zhlKF.png

The problem is that i see blank pages instead my xml layout referenced with fragment classes, What is the correct way to write the XML file to be supported by the Viewpager Here is the XML Layout code first1.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">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="HOLA MUNDO"/>

</RelativeLayout>

Frag1.java

package com.example.aliencomputing.kakamila;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Frag1 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.first1, container, false);
        return view;
    }
}

Frag2.java

package com.example.aliencomputing.kakamila;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Frag2 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.first2, container, false);
        return view;
    }
}

Frag3.java

package com.example.aliencomputing.kakamila;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Frag3 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.first3, container, false);
        return view;
    }
}

Here is the Main Activity code MainActivity.java

package com.example.aliencomputing.kakamila;

import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.os.Bundle;



public class MainActivity extends FragmentActivity {

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

        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);

        viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));

    }

}

And ViewPagerAdapter.java

package com.example.aliencomputing.kakamila;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;


public class ViewPagerAdapter extends FragmentPagerAdapter {

    final int PAGE_COUNT = 3;
    //TAB TITLES
    private String tabtitles[]=new String[] {"Tab1", "Tab2", "Tab3"};
    Context context;

    public ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                Frag1 frag1 = new Frag1();
                return frag1;
            case 1:
                Frag2 frag2 = new Frag2();
                return frag2;

            case 2:
                Frag3 frag3 = new Frag3();
                return frag3;
        }
        return null;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabtitles[position];
    }
}

解决方案

from the activity_main you posted: you need a viewgroup outside of the viewpager, and you need to make the height of pagertabstrip wrap content.

the java code you posted looks correct to me.

这篇关于修复Viewpager的Andr​​oid浏览的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆