これは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);
ご覧のように、リストビューでtextviewのマージン/パディングを設定するために[〜#〜] three [〜#〜]メソッドを使用しましたが、成功しませんでした。
新規作成の代わりに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
を膨らませてカスタマイズします。
注意、(int)ピクセル!= dp
public int dp2px(int dp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
}
次のコードを試してください、それは私のために動作します。
textView.setX(40);
私のソリューションはSDK 14以上です。 ListViewではなく、RecyclerView。