8.4.5 动态设置布局属性
在上一节的例子中我们会发现如果将activity_load_layout.xml文件中标签的android:gravity属性值设为"center_horizontal",或将item.xml文件中标签的android:layout_gravity属性值设为"center_horizontal",或将这两个属性值设为"right",动态添加的10个视图并没有居中或右对齐。原因是动态添加视图时并不会采用静态方式设置布局,而要想重新设置布局属性,就需要使用LayoutParams类。但要注意,由于主窗口布局使用的是LinearLayout布局,所以要使用android.widget.LinearLayout.LayoutParams类。修改后的LoadLayoutActivity类的代码如下:
源代码文件:src/ch08/LoadLayout/src/mobile/android/load/layout/LoadLayoutActivity.java

public class LoadLayoutActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LinearLayout parent = (LinearLayout) getLayoutInflater().inflate(
R.layout.activity_load_layout, null);
for(int i = 1; i <= 10; i++)
{
View view = getLayoutInflater().inflate(R.layout.item, null);
TextView textView = (TextView)view.findViewById(R.id.textview);
textView.setText("text" + i);
// 创建LayoutParams对象
android.widget.LinearLayout.LayoutParams layoutParams = new
android.widget.LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
// 设置gravity字段的值(水平居中)
layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
// 动态添加视图时指定父视图(LinearLayout)的布局参数
parent.addView(view, layoutParams);
}
setContentView(parent);
}
}

运行修改后的程序,所有的控件都会居中显示。

更多相关文章

  1. Android三大动画
  2. cocos2dx学习笔记(二)导入项目到Android中
  3. Android(安卓)自定义流式布局
  4. android新特性,CoordinatorLayout,TabLayout+viewpager+fragment,
  5. 第一章:第一行android代码注解(4)
  6. ViewPager两大弊端优化方案
  7. ListView的几种使用方法
  8. Android(安卓)一般动画Animation和属性动画Animator
  9. Android(安卓)TypedArray源码详解

随机推荐

  1. Android(安卓)ProgressBar 进度条
  2. android 全屏 去掉标题栏
  3. android imageUtil
  4. android 之RadioButton单选控件
  5. The Android(安卓)Versions History : Cu
  6. Android(安卓)studio 3.0和unity交互 Man
  7. android 获取系统默认路径
  8. Android(安卓)Studio & HTTP Proxy
  9. android点击实现图片放大缩小
  10. XE7 Android(安卓)中使用 MessageDlg 范