programmatically set margin/ padding of textview in a listview

android, margin, padding

Solution

`maintitle.setPadding(50, 0, 0, 0);` (method 2) should work.

I think the problem is that, although you do a lot of changes to the `TextView`, at the end you kind of inflate a new layout again in:

SimpleAdapter adapter = new SimpleAdapter(this, fillMaps, 
            R.layout.main_alllatestnewslist, from, to);

so, make a custom adapter, then inflate and customize your `TextView` in the `getView()`.

Problem

This is a part of main_alllatestnews.xml ``` <LinearLayout android:id="@+id/layout_content" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@id/layout_menu" android:layout_below="@id/layout_title" android:orientation="vertical" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout> ``` This is full of main_alllatestnewslist.xml ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_temp" android:layout_width="fill_parent" android:layout_height="100px" android:background="@drawable/background_news_list" > <ImageView android:id="@+id/image_alllatestnewstitle" android:layout_width="134px" android:layout_height="80px" android:layout_marginBottom="5px" android:layout_marginLeft="10px" android:layout_marginRight="10px" android:layout_marginTop="5px" android:scaleType="centerCrop" /> <LinearLayout android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/text_particularlatestnewstitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="25px" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="25px" > <TextView android:id="@+id/text_newsdate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#999999" android:textSize="15px" /> <TextView android:id="@+id/text_newscategorytitle" android:layout_width="50px" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_gravity="right" android:gravity="right" android:textColor="#ff0000" android:textSize="15px" /> </RelativeLayout> </LinearLayout> ``` This is a part of main_alllatestnews.java ``` LayoutInflater liInflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); linear.addView(liInflater .inflate(R.layout.main_alllatestnewslist, null)); lv = (ListView) findViewById(android.R.id.list); for (int i = 0; i < webservice.news.size(); i++) { maintitle = (TextView) findViewById(R.id.text_particularlatestnewstitle); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)maintitle.getLayoutParams(); layoutParams.setMargins(50, 0, 0, 0); <-- method one maintitle.setPadding(50, 0, 0, 0); <-- method two maintitle.setLayoutParams(layoutParams); int margin = 100; <-- method three ((MarginLayoutParams) maintitle.getLayoutParams()).leftMargin = margin; } SimpleAdapter adapter = new SimpleAdapter(this, fillMaps, R.layout.main_alllatestnewslist, from, to); lv.setAdapter(adapter); ``` As you can see i had used THREE methods to set margin/ padding of textview in a listview but not success. I am using xml textview instead of create new. I want to manually set because i got if / else statement there as did not post out. I am totally out of idea how to set it in java. Please provide me a idea that workable one, thanks ``` ((MarginLayoutParams) maintitle.getLayoutParams()).leftMargin = margin; ```

Original source