代码中动态addView的坑

代码中动态addView的坑,第1张

1.一个view控件,先new出来做初始化处理,addview(view)中码明,再获取旅源此view的.getLayoutParams(),设置view的高拆模态宽,padding的设置是在view本身有的方法,view.setPadding(left,top,right,bottom)

2.

在LinearLayout中动态addview,两种方式:a:addView(viewA)

结果:

再过去viewA的getLayoutParams() 设置viewA的宽高,

结果:

b:addView(view,layoutParams)

结果:

为什么第一种方式会导致第二个textview内容显示不会超过第一个textview的宽度

DecorView 是android 界面的顶级View ,当前界面的整个即为DecorView。DecorView为FrameLayout,而DecorView 一般会包含一个竖直方向的LinearLayout。这个竖直方向的LinearLayout 一般分为两个烂埋部分(具体Android版本饥纯蚂和主题有所不同),上部分为标题栏,下部分为内容栏,而内容栏的id 为 android.R.id.content, 内容栏也是FrameLayout,我们使用setContentView(),的布局加入的就是内容栏。

动态添加View 一般是添加在我们自己的裤手布局文件里,而setContentView时加入的我们的布局是内容栏的第一个子View,所以我们需要获取到我们的布局对应的View。

####如何获取DecorView?

在Activity 中直接调用 getWindow().getDecorView()

####如何获取ContentView?

在Activity中调用

FrameLayout contentView = (FrameLayout)getWindow().getDecorView().findViewById(android.R.id.content)

或直接:

FrameLayout contentView = (FrameLayout)activity.findViewById(android.R.id.content)

####获取我们填充的布局

ViewGroup viewGroup = (ViewGroup)contentView.getChildAt(0)

####添加View

Android 是可以使用 style的,具体方法为:

1、在Android中可以这样定义样式:

在res/values/styles.xml文件中添纤高加以下内容

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name=“itcast”>

<item name="android:textSize">18px</item>

<item name="android:textColor">#0000CC</item>

</团竖带style>

</resources>

2、在layout文件中可以像下面这样使用上面的android样式:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....>

<TextView style="@style/itcast"

..... />

3、可以使他继承父样式,当然,如果父样式的值不符合需求,你也可以对它进行修改,如下:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="itcast"塌芦>

<item name="android:textSize">18px</item>

<item name="android:textColor">#0000CC</item>

</style>

<style name="subitcast" parent="@style/itcast">

<item name="android:textColor">#FF0000</item>

</style>

</resources>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11971422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存