我已经阅读了很多问题,说问题是layout_width = 0dip
,但我已经尝试过了,并且无法使其发挥作用。
我有这个持有人:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/linearLayout1"
android:orientation="horizontal"
android:weightSum="3"
android:padding="10dip"
android:fadingEdge="none"
android:background="@drawable/bg_filters">
</LinearLayout>
这部分:
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="0dip"
android:layout_height="40dip"
android:padding="4dip"
android:gravity="center"
android:layout_gravity="center"
android:layout_weight="1"
android:layout_marginRight="15dip"
android:background="@drawable/bg_filter_bt_active"
android:textColor="@color/app_color_all">
</Button>
但我的观看'按钮显示仍然显示在左侧... 有没有一种方法我应该叫持有人重新计算其子女的权重?
请记住,我是以编程方式创建的。
谢谢!
编辑:
我已经有了这个组合的屏幕:
##################################
# #
# Button | Button | Button #
# #
使用那个确切的XML,但它不是以编程方式创建的,而是已经存在于XML中。它运作得很好。
当我以编程方式创建相同的设置时,我得到了这个:
##################################
# #
# Button | Button | Button #
# #
按钮将自己对齐到左侧,即使重量也应均匀分布。
我需要调用LinearLayout
来计算权重并更正视图吗?
编辑2:
我刚刚尝试使用相同的LinearLayout
并在常规XML中插入相同的Button
3次。它显示就像它应该。这绝对与以编程方式创建持有者和3个按钮有关。
答案 0 :(得分:0)
检查你的进口!我有同样的问题,事实证明我导入了错误的LayoutParams。我正在导入android.widget.AbsListView,而不是android.widget.LinearLayout.LayoutParams以及造成问题的原因。
答案 1 :(得分:0)
您是否尝试通过invalidate()或refreshDrawableState()强制视图重绘自身?
你能以编程方式发布创建这些按钮的代码吗?