如题。假如你的TextView内容超过TextView本身的宽带。那么让内容以跑马灯的样式展示给用户无疑是比较好的体验,那么该怎么样在程式里面设置呢?很简单,只要在你想要实现的TextView上添加简单的几行代码就可以了:
android:ellipsize="marquee" android:focusable="true"
android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever无止境的重复"
android 3.0有很多新特性 其中有Fragment(碎片)通过这个可以实现View的模块化,特别在平板电脑中使用Fragment可以更加的灵活的布局,当我们想在3.0以下版本中使用Fragment !不过android提供了一种解决方式
---------Compatibility Package
Compatibility Package可以实现低版本的sdk使用高版本的一些特性
通过android-support-v4.jar 包实现(jar包位于android-sdk\extras\android\compatibility\v4下),在android-support-v4包中 有Fragment等类,在项目中build path一下android-support-v4.jar包!
使用:
在activity中引入Fragment有两种方式
1.xml:
<fragment android:name="com.example.news.MyFragment1"
android:id="@+id/viewer"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" />
2.代码:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.llFragmentList, new MyFragment3());
fragmentTransaction.add(R.id.llFragmentDetail,new MyFragment4());
fragmentTransaction.commit();
具体步骤:
1.新建一个类继承自Fragment
在Fragment中有个 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) ,这个方法就是的view就是显示在Activity中的view,
参数container指的是你要将Fragment添加到那个容器标签下
eg:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LinearLayout layout = (LinearLayout)inflater.inflate(R.layout.myfragment1, container, false);
Button btnAdd= (Button)layout.findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(this);
Button btnRemove = (Button)layout.findViewById(R.id.btnRemove);
btnRemove.setOnClickListener(this);
Button btnReplace = (Button)layout.findViewById(R.id.btnReplace);
btnReplace.setOnClickListener(this);
return layout;
}
2.新建一个类继承自FragmentActivity(必须继承自它)
然后通过
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.llFragmentList, new MyFragment3());
fragmentTransaction.add(R.id.llFragmentDetail,new MyFragment4());
fragmentTransaction.commit();
的方式将Fragment添加到Activity中
Activity与Fragment通信的问题
Activity-->Fragment
通过fragmentManager.findFragmentById();或fragmentManager.findFragmentByTag()的方式查找到Fragment对象
Fragment-->Activity
在Fragment类中有一个 getActivity()方法,该方法获得的就是当前Fragment依赖的Activity实例
个人觉得Fragment类似ActivityGroup的效果,不过相对于ActivityGroup,Fragment提供了很多可以控制Fragment的方法
fragmentTransaction.add();
fragmentTransaction.remove();
fragmentTransaction.replace();
transaction.addToBackStack(null); 等
更详细的关于Fragment的内容:
http://blog.sina.com.cn/s/blog_5d6ee3360100r1my.html
- (void)textFieldDidBeginEditing:(UITextField *)textField { float offset = 0.0f; if(self.grade == textField || self.tel == textField) { offset = - 180.0f; } NSTimeInterval animationDuration = 0.30f; [UIView beginAnimations:@"ResizeForKeyBoard" context:nil]; [UIView setAnimationDuration:animationDuration]; float width = self.view.frame.size.width; float height = self.view.frame.size.height; CGRect rect = CGRectMake(0.0f, offset , width, height); self.view.frame = rect; [UIView commitAnimations]; }
这样,当编辑grade或者tel时,视图会自动滚动到当前的TextField。