Olá.
No meu app, tenho três layouts, cada uma correspondendo a uma página.
Utilizo o ScreenSlide para a passagem de página. Antes, para cada página,
havia uma imagem, fazia:
int mPaginas [] = { R.drawable.pag1, R.drawable.pag2. R.drawable.pag3 };
E chamando estas imagens, dentro do meu código, funcionava perfeitamente.
Mas me limita à outras coisas que quero que faça. Por isso, quero recorrer
aos XMLs, ao invés de chamar as imagens. Como faço isso?
Seguem os códigos:
[code]
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.LinearLayout;
/**
- Created by Tsuy on 12/10/2015.
*/
public class RelatorioActivity extends Activity
{
private int mPaginas[] = { R.layout.fragment_1_pagina, R.layout.fragment_2_pagina, R.layout.fragment_3_pagina };
@Override
public void onCreate(Bundle savedInstance)
{
super.onCreate(savedInstance);
setContentView(R.layout.activity_relatorio);
ViewPager vp = new ViewPager(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
vp.setLayoutParams(lp);
vp.setAdapter(new AdapterPaginas(this, mPaginas));
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
@Override
public void onPageSelected(int arg0)
{
Log.i("Script", "onPageSelected()");
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
Log.i("Script", "onPageScrolled()");
}
@Override
public void onPageScrollStateChanged(int arg0)
{
Log.i("Script", "onPageScrollStateChanged()");
}
});
LinearLayout ll = (LinearLayout) findViewById(R.id.LinearLayout1);
ll.addView(vp);
}
}
}[/code]
[code]
<?xml version="1.0" encoding="utf-8"?>[/code]
[code]
/**
- Created by Tsuy on 16/10/2015.
*/
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class AdapterPaginas extends PagerAdapter
{
private Context context;
private int imgs [];
public AdapterImg(Context context, int imgs [])
{
this.context = context;
this.imgs = imgs;
}
@Override
public int getCount()
{
return imgs.length;
}
@Override
public boolean isViewFromObject(View view, Object obj)
{
return view == ((TextView) obj).getParent();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public Object instantiateItem(ViewGroup container, int position)
{
LinearLayout ll = new LinearLayout(context);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
ll.setLayoutParams(lp);
container.addView(ll);
ImageView iv = new ImageView(context);
iv.setImageResource(imgs[position]);
ll.addView(iv);
TextView tv = new TextView(context);
ll.addView(tv);
return(tv);
}
@Override
public void destroyItem(ViewGroup container, int position, Object view)
{
container.removeView((View)((TextView)view).getParent());
}
}[/code]
[code]
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
- Created by Tsuy on 20/10/2015.
*/
public class Pagina1Fragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View layoutPag1 = inflater.inflate(R.layout.fragment_1_pagina, container, false);
return layoutPag1;
}
}[/code]
[code]
<?xml version="1.0" encoding="utf-8"?><ImageView
android:id="@+id/pagina1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:background="@drawable/ic_easter_egg_pag_1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="60sp"
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="30sp"/>
[/code]
Imagino que eu precise criar uma variável de referência à um objeto
Pagina1Fragment no onCreate da RelatorioActivity;
algo como:
[code]
Pagina1Fragment p1F = new Pagina1Fragment();
// … outros códigos
p1F.onCreateView( “O que colocar aqui” );[/code]
Na linha:
p1F.onCreateView( * );
- O que eu devo colocar, caso seja esta a resolução?