设置自定义视图的布局参数

时间:2017-08-16 20:06:43

标签: android layoutparams

在XML中,我正在创建一个SwipeDeck(customView)的新实体,如下所示:

<com.daprlabs.aaron.swipedeck.SwipeDeck
 android:id="@+id/swipe_deck"
 android:layout_width="match_parent"
 android:layout_height="20dp"
 swipedeck:card_spacing="15dp"
 swipedeck:max_visible="1"
 swipedeck:render_above="true"
 swipedeck:swipe_enabled="true">

现在我正在尝试以编程方式设置x和y位置。这很好用:

cardStack = (SwipeDeck) findViewById(R.id.swipe_deck);

    cardStack.setX(20);
    cardStack.setY(10+actionBarHeight);

当我尝试动态设置高度和宽度时,没有任何反应:

cardStack = (SwipeDeck) findViewById(R.id.swipe_deck);
    ViewGroup.LayoutParams params = cardStack.getLayoutParams();
    params.height=500;
    params.width =  screen_width - 40;
    cardStack.setLayoutParams(params);

一切都发生在onCreate上。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您应该针对包含它的ViewGroup声明“ params”的类型。
例如,替换行

ViewGroup.LayoutParams params = cardStack.getLayoutParams();  

LinearLayout.LayoutParams params = cardStack.getLayoutParams();  

如果您的自定义视图位于LinearLayout内