1
У меня есть приложение, в котором я использую ViewPager для перемещения между двумя фрагментами. Я отлично могу скользить между двумя Фрагментами; но теперь мне нужно сдвинуть только половину фрагмента. Как это сделать? Вот то, что я пробовал:Слайд только половина Фрагмент при использовании ViewPager
Это мой MainActivity
public class MainActivity extends FragmentActivity
{
MyPageAdapter pageAdapter;
Context c;
int[] pics = {R.drawable.ic_launcher};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
c = MainActivity.this;
pageAdapter = new MyPageAdapter(getSupportFragmentManager(), c, pics);
ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
pager.setAdapter(pageAdapter);
}
}
PageAdapter.java
class MyPageAdapter extends FragmentPagerAdapter {
Context c;
int[] pics;
Fragment fragment;
public MyPageAdapter(android.support.v4.app.FragmentManager fm, Context c, int[] pics) {
super(fm);
this.c =c;
this.pics = pics;
}
@Override
public Fragment getItem(int position) {
switch(position){
case 0:return new MyFragment();
case 1: return new NewFragment();
default: return new MyFragment();
}
}
@Override
public int getCount() {
return 2;
}
}
MyFragment.java
public class MyFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final MyFragment newInstance(String message,int a)
{
MyFragment f = new MyFragment();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.myfragment_layout, container, false);
TextView messageTextView = (TextView)v.findViewById(R.id.textView);
messageTextView.setText("hi");
v.setBackgroundColor(Color.parseColor("#ff0000"));
return v;
}
}
NewFragment.java
public class NewFragment extends Fragment {
public static final MyFragment newInstance(String message,int a)
{
MyFragment f = new MyFragment();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.new_fragment, container, false);
Button b1 = (Button) v.findViewById(R.id.b1);
v.setBackgroundColor(Color.parseColor("#0000ff"));
return v;
}
}
Но она будет отображаться половина обоего страниц и мы не можем даже скользить – user3201291
Тогда я не понял вас вопрос правильно. Что вы подразумеваете под «необходимость скольжения только половины фрагмента»? – katzoft
Я имею в виду, что весь первый фрагмент должен отображаться, но когда я нажимаю, половина первых слайдов и половина второго фрагмента слайдов в – user3201291