请问,使用fragment+viewpage, 显示如图 1所示, 但是 那跟 “蓝线”并不在字体下面,请问应该怎么处理呢?
麻烦会的朋友帮忙回复下吧,谢啦
图一
想要的效果如下图 2:(“修改” 和 “显示” 要靠左边些,然后 当滑动的时候,底线要刚好在 “修改”或者 “显示”的下边 )
图2
public class ProfessionalActivity extends FragmentActivity {
。。。
private void InitViewPager() {
mViewpager = (ViewPager) findViewById(R.id.forumpager);
fragmentsList = new ArrayList<Fragment>();
leFragment = new leFragment();
nalFragment = new nalFragment( ); //两个fragment
fragmentsList.add(leFragment);
fragmentsList.add(nalFragment);
mViewpager.setAdapter(new ProfessionalFragmentPagerAdapter(getSupportFragmentManager(),fragmentsList)); //viewpage
mViewpager.setCurrentItem(0);
mViewpager.setOnPageChangeListener(new MyOnPageChangeListener());
}
private void InitWidth() {
BottomLine = (ImageView)findViewById(R.id.bottom_line); // 蓝线
bottomlinewidth = BottomLine.getLayoutParams().width;
Log.d(TAG,"cursor imageview width="+bottomlinewidth);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenwidth = dm.widthPixels;
position_one = (int)(screenwidth / 2.0);
}
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageSelected(int arg0) {
Animation animation = null;
switch ( arg0 ) {
case 0:
if ( currIndex == 1 ) {
animation = new TranslateAnimation(position_one, 0, 0, 0);
textview_professional.setTextColor(resources.getColor(R.color.lightwhite));
}
textview_article.setTextColor(resources.getColor(R.color.white));
break;
case 1:
if ( currIndex == 0 ) {
animation = new TranslateAnimation(0, position_one, 0, 0);
textview_article.setTextColor(resources.getColor(R.color.lightwhite));
}
textview_professional.setTextColor(resources.getColor(R.color.white));
break;
}
currIndex = arg0;
animation.setFillAfter(true);
animation.setDuration(300);
BottomLine.startAnimation(animation);
}
XML 布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/coral"
android:paddingBottom="10dip"
android:paddingTop="10dip" >
<TextView
android:id="@+id/textview_article"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/article"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/textview_professional"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/professional"
android:textColor="@color/lightwhite"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical"
android:paddingBottom="3dip" >
<ImageView
android:id="@+id/bottom_line"
android:layout_width="40dip"
android:layout_height="2dip"
android:layout_marginLeft="20dip"
android:scaleType="matrix"
android:src="#8EE" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/forumpager"
android:layout_width="wrap_content"
android:layout_height="221dp"
android:layout_gravity="center"
android:layout_weight="0.67"
android:background="#FFFFFF"
android:flipInterval="30"
android:persistentDrawingCache="animation" />
</LinearLayout>
}
------解决思路----------------------
先把textview画到左边,变成图2那样子,然后你是想用动画显示平移,看上去像是fragment换页绑定imageview的效果,你要想这么干 你平移就好了 ,把起始位置和结束位置拿到用translate平移就行。我想说 你为什么不直接用radioButton和fragment互相绑定,选中替换radioButton上的图片就好了。 如果你非要imageview那样的横条显示 你可以拿个第三方代码 直接实现 做的好看又省事啊
------解决思路----------------------
@ zhaojiaxing91...
谢谢您的回复
对于这个 “如果你非要imageview那样的横条显示 你可以拿个第三方代码 直接实现 做的好看又省事啊
请问 能给个链接吗?
谢啦
------解决思路----------------------
最简单的方法,把上面的那个textView和下面的蓝色细线写在一起Layou里,点击哪个tab,就让textview和蓝色细线一起显示,另一个textview和蓝色细线隐藏。至于蓝色细线建议就一个View控件就行了,别整什么ImageView之类的..
------解决思路----------------------
在布局的时候TextView下面加个ImageView 当你点击不同按钮时 在代码中对控件做相对应的设置