gpt4 book ai didi

android - 以编程方式在 ListView 中设置 TextView 的边距/填充

转载 作者:IT老高 更新时间:2023-10-28 23:10:00 26 4
gpt4 key购买 nike

这是 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>

这里全是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>

这是 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);

如您所见,我曾使用 三种 方法在 ListView 中设置 textview 的边距/填充,但未成功。

我正在使用 xml textview 而不是新建。

我想手动设置,因为我在那里得到了 if/else 语句,因为没有发布。

我完全不知道如何在 java 中设置它。

请给我一个可行的想法,谢谢

((MarginLayoutParams) maintitle.getLayoutParams()).leftMargin = margin;

最佳答案

maintitle.setPadding(50, 0, 0, 0);(方法2)应该可以工作。

我认为问题在于,尽管您对 TextView 进行了很多更改,但最后您还是会在以下位置再次膨胀一个新布局:

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

所以,制作一个自定义适配器,然后在 getView() 中膨胀并自定义您的 TextView

关于android - 以编程方式在 ListView 中设置 TextView 的边距/填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com