Android:MyListView在创建时添加边距
我有一个列表视图,列表中的每个项目如下所示:Android:MyListView在创建时添加边距,android,android-layout,android-listview,android-xml,Android,Android Layout,Android Listview,Android Xml,我有一个列表视图,列表中的每个项目如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/item_listview" android:onClick="openOffre" andro
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/item_listview"
android:onClick="openOffre"
android:orientation="horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:baselineAligned="false">
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="5" >
<ImageView
android:id="@+id/imageDetailOffre"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@drawable/ic_launcher" />
</FrameLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:layout_marginLeft="10dp"
android:layout_marginRight="20dp"
android:orientation="vertical" >
<TextView
android:id="@+id/nomDetailOffre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="40"
android:tag="0"
android:text="Nom de l'offre"
android:textColor="@color/bleu_marine"
android:textSize="16sp"
android:textStyle="bold"
android:layout_gravity="center"
android:gravity="center"/>
<ImageView
android:id="@+id/imageRate"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingRight="30dp"
android:paddingLeft="30dp"
android:layout_weight="20"
android:scaleType="centerInside"
android:layout_gravity="center"
android:src="@drawable/rate_three" />
<TextView
android:id="@+id/descriptionDetailOffre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="40"
android:maxLines="3"
android:text="C'est la meilleure reduc du monde, vraiment elle est trop bien."
android:textColor="@color/bleu_marine"
android:gravity="center"/>
</LinearLayout>
创建listview时,屏幕右侧有一个边距
但如果我把手机调到横向,回到纵向,边距就会消失,listview看起来就像我想要的那样
你知道这是怎么回事吗?我是怎么避开她的?
(为糟糕的英语道歉;)
编辑1:我的活动代码:
public class CategorieActivity extends ListActivity{
DbHelper dbhelper = new DbHelper(this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handleUneCategorie();
}
private void handleUneCategorie() {
setContentView(R.layout.categorie);
String nomCat = this.getIntent().getExtras().getString("nomCat");
TextView nomCategorie = (TextView) findViewById(R.id.nomCategorie);
Log.v("StTropez", nomCat);
Log.v("StTropez", nomComplet(nomCat));
nomCategorie.setText(nomComplet(nomCat));
final ArrayList<Offre> offres = dbhelper.getCatOffre(nomCat);
int size = offres.size();
String[] listeNom = new String[size];
String[] listeDescription = new String[size];
String[] listeImage1 = new String[size];
long[] listeId = new long[size];
int i=0;
for(Offre offre : offres){
listeId[i]=offre.getId();
listeNom[i]=offre.getNom();
listeDescription[i]=offre.getDescription();
listeImage1[i]=offre.getImage1();
i++;
}
OffreArrayAdapter myArray = new OffreArrayAdapter(this, R.layout.categorie_detail, listeId ,listeNom, listeDescription, listeImage1 ,offres);
setListAdapter(myArray);
}
public void openOffre(View v){
TextView nomOffre = (TextView) v.findViewById(R.id.nomDetailOffre);
String idOffre = nomOffre.getTag().toString();
Intent intent = new Intent(CategorieActivity.this, OffreDetailActivity.class);
intent.putExtra("idOffre", idOffre);
startActivity(intent);
}
public String nomComplet(String nomCat){
if(nomCat.equals("privileges"))
return (String) getText(R.string.btt_privilege);
else if(nomCat.equals("coupsdecoeur"))
return (String) getText(R.string.btt_coupdecoeur);
else if(nomCat.equals("hotels"))
return (String) getText(R.string.btt_hotel);
else if(nomCat.equals("restos"))
return (String) getText(R.string.btt_resto);
else if(nomCat.equals("activitees"))
return (String) getText(R.string.btt_activite);
else if(nomCat.equals("evenements"))
return (String) getText(R.string.btt_evenement);
else
return nomCat;
}
@Override
public void onBackPressed(){
CategorieActivity.super.onBackPressed();
this.finish();
}
}
公共类分类活动扩展了ListActivity{
DbHelper DbHelper=新的DbHelper(this);
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
handleUneCategorie();
}
私有无效handleUneCategorie(){
setContentView(R.layout.categorie);
字符串nomCat=this.getIntent().getExtras().getString(“nomCat”);
TextView-nomcaterie=(TextView)findViewById(R.id.nomcaterie);
Log.v(“StTropez”,nomCat);
Log.v(“StTropez”,nomComplet(nomCat));
nomcatarie.setText(nomComplet(nomCat));
final ArrayList offres=dbhelper.getCatOffre(nomCat);
int size=offres.size();
String[]listeNom=新字符串[大小];
String[]ListDescription=新字符串[大小];
String[]ListImage1=新字符串[大小];
long[]listed=新的long[size];
int i=0;
主管(主任:主任){
listed[i]=offre.getId();
listeNom[i]=offre.getNom();
ListDescription[i]=offre.getDescription();
ListImage1[i]=offre.getImage1();
i++;
}
OffRefrayAdapter myArray=新的OffRefrayAdapter(this,R.layout.categie_detail,ListId,ListNom,ListDescription,ListImage1,offres);
setListAdapter(myArray);
}
公共空地开放设施(视图五){
TextView nomOffre=(TextView)v.findViewById(R.id.nomDetailOffre);
字符串idOffre=nomOffre.getTag().toString();
意向意向=新意向(CategorieActivity.this,OffreDetailActivity.class);
意图。putExtra(“idOffre”,idOffre);
星触觉(意向);
}
公共字符串nomplete(字符串nomCat){
如果(名称等于(“特权”))
return(String)getText(R.String.btt_特权);
else if(名称等于(“耦合系数”))
return(String)getText(R.String.btt_);
否则,如果(名称等于(“酒店”))
return(String)getText(R.String.btt_hotel);
else if(nomCat.equals(“restos”))
return(String)getText(R.String.btt_resto);
else if(名称等于(“活动对象”))
return(String)getText(R.String.btt_activate);
else if(标称等于(“均衡”))
return(String)getText(R.String.btt_evement);
其他的
返回nomCat;
}
@凌驾
public void onBackPressed(){
CategorieActivity.super.onBackPressed();
这个;
}
}
以及我的适配器的代码:
public class OffreArrayAdapter extends ArrayAdapter{
String[] nom;
String[] description;
String[] images;
long[] id;
ArrayList<Offre> offres;
Context context;
public OffreArrayAdapter(Context context, int textViewResourceId, long[] id ,Object[] nom, String[] description, String[] images ,ArrayList<Offre> offres) {
super(context, textViewResourceId,R.id.nomDetailOffre,nom );
this.context=context;
this.id = id;
this.description = description;
this.images=images;
this.offres=offres;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
View res = convertView;
if (res == null){
LayoutInflater li = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
res=li.inflate(R.layout.categorie_detail, null);
}else{
res=convertView;
}
TextView nomDetailOffre = (TextView) res.findViewById(R.id.nomDetailOffre);
nomDetailOffre.setText(traiteTexte((String) getItem(position)));
nomDetailOffre.setTag(id[position]);
TextView descriptionDetailOffre = (TextView) res.findViewById(R.id.descriptionDetailOffre);
int tailleDescription = description[position].length();
if(tailleDescription >= 63){
String smalldescription = description[position].substring(0, 60) + "...";
descriptionDetailOffre.setText(smalldescription);
}
else{
descriptionDetailOffre.setText(description[position]);
}
ImageView imageDetailOffre = (ImageView) res.findViewById(R.id.imageDetailOffre);
String filename = images[position];
Utils.mettreImage(filename, imageDetailOffre, context);
return res;
}
private String traiteTexte(String toDo) {
return toDo;
}
}
后阵列适配器的公共类扩展了ArrayAdapter{
字符串[]名称;
字符串[]说明;
字符串[]图像;
长[]id;
ArrayList offres;
语境;
public offrealayadapter(上下文上下文、int textViewResourceId、long[]id、对象[]nom、字符串[]说明、字符串[]图像、数组列表offres){
super(context,textViewResourceId,R.id.nomDetailOffre,nom);
this.context=context;
this.id=id;
this.description=描述;
这个。图像=图像;
这个。offres=offres;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图res=转换视图;
如果(res==null){
LayoutInflater li=(LayoutInflater)this.getContext().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
res=li.充气(R.布局.分类详细信息,空);
}否则{
res=转换视图;
}
TextView nomDetailOffre=(TextView)res.findViewById(R.id.nomDetailOffre);
setText(traitetext((String)getItem(position));
nomDetailOffre.setTag(id[位置]);
TextView descriptionDetailOffre=(TextView)res.findViewById(R.id.descriptionDetailOffre);
int tailleddescription=描述[位置].length();
如果(尾部描述>=63){
字符串smalldescription=description[position]。子字符串(0,60)+“…”;
descriptionDetailOffre.setText(smalldescription);
}
否则{
descriptionDetailOffre.setText(描述[位置]);
}
ImageView imageDetailOffre=(ImageView)res.findViewById(R.id.imageDetailOffre);
字符串文件名=图像[位置];
mettreImage(文件名、imageDetailOffre、上下文);
返回res;
}
私有字符串traitetext(字符串toDo){
返回待办事项;
}
}
下面是问题的一个例子:
列表视图的第一次显示时间:
在横向/纵向操作后:请显示您的活动代码从文本视图中删除权重无需删除从星形图像视图中删除填充并更改为margini,但没有更改没有发生什么线索,但似乎存在权重问题给框架加4个权重,给线性布局加6个权重