开发者

Android ListView layout param set

开发者 https://www.devze.com 2023-03-22 12:42 出处:网络
I have a Listview in my xml. The structure of it like that: <ListView android:id=\"@+id/SeriesCastListIt开发者_Go百科emView\"

I have a Listview in my xml. The structure of it like that:

<ListView 
    android:id="@+id/SeriesCastListIt开发者_Go百科emView"
    android:paddingTop="10dip"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="#FFFFFF"
    android:dividerHeight="1px"/>

Now I want to set a height for the Listview by java code. i am tried with following code.

ListView castListItemView = (ListView) findViewById(R.id.SeriesCastListItemView);
castListItemView.setAdapter(new CastAdapter(this, castDescriptionArr));
castListItemView.setLayoutParams(new ListView.LayoutParams(LayoutParams.FILL_PARENT, 500));

But it giving java.lang.ClassCastException: android.widget.AbsListView$LayoutParams. What is the problem in my code?


You should be using the LayoutParams of the parent view that contains your ListView. In my case, I placed the ListView in a Frame Layout, and used this code. If you placed the ListView in a LinearLayout you would use LinearLayout.LayoutParams.

ListView castListItemView = (ListView) findViewById(R.id.SeriesCastListItemView);
castListItemView.setAdapter(new CastAdapter(this, castDescriptionArr));
castListItemView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 500));

I assume it was a typo in your question, but make sure that the "c" in castListItemView is lowercase on your third line.

MrJre brings up a good point though. Because many different views have their own LayoutParams, it is best to include the view whose parameters you wish to use (as in FrameLayout.LayoutParams) instead of making Eclipse guess based on which LayoutParams class you previously imported.

You can see this previous question for more information.


in this line:new ListView.LayoutParams(LayoutParams.FILL_PARENT, 500) you are mixing up LayoutParams classes.

Either

new ListView.LayoutParams(ListView.LayoutParams.FILL_PARENT, 500)

or

new LayoutParams(LayoutParams.FILL_PARENT, 500)

will fix it is my guess.

0

精彩评论

暂无评论...
验证码 换一张
取 消