ListView 에서 제목 과 content 레이아웃 은 둘 다 표시 하면 똑 같이 나 뉘 고 하 나 를 표시 하면 가운데 에 있 습 니 다.
6052 단어 LinearLayout
하나의 ListView 는 두 가지 레이아웃 을 불 러 와 야 합 니 다. 하 나 는 가운데 이 고 하 나 는 위 에서 Item 을 똑 같이 나 누 는 것 입 니 다. 예전 에는 너무 어 리 석 었 습 니 다. 두 개의 레이아웃 을 왔다갔다 하 며 돌 이 킬 수 없 었 습 니 다.
xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/structure_item_lay"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:descendantFocusability="blocksDescendants"
android:minHeight="40dip" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:orientation="vertical"
android:gravity="center_vertical"
>
<TextView
android:id="@+id/id_treenode_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:ellipsize="end"
android:minWidth="180dp"
android:singleLine="true"
android:text="@string/app_name"
android:textColor="#8e8e8e"
android:textSize="16dip" />
<TextView
android:id="@+id/id_treenode_online"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:ellipsize="end"
android:minWidth="180dp"
android:singleLine="true"
android:text="@string/app_name"
android:textColor="#8e8e8e"
android:textSize="12dip"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
</pre><pre name="code" class="html">activity :
public class MainActivity extends ActionBarActivity {
private List<Item> itemList = new ArrayList<Item>();
private ListView list ;
private ItemAdapter itemAdapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initId();
initData();
itemAdapter = new ItemAdapter(getApplicationContext(), itemList);
list.setAdapter(itemAdapter);
}
public void initId()
{
list = (ListView)findViewById(R.id.list);
}
public void initData()
{
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", "1"));
itemList.add(new Item("A", ""));
itemList.add(new Item("A", "1"));itemList.add(new Item("A", "1"));
}
}
</pre><pre name="code" class="java">Item :
public class Item {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
Item(String name, String age) {
this.name = name;
this.age = age;
}
}
adapter:
public class ItemAdapter extends BaseAdapter{ private List<Item> itemList = new ArrayList<Item>(); private LayoutInflater inflater; public ItemAdapter(Context c,List<Item> itemList) { // TODO Auto-generated constructor stub inflater = LayoutInflater.from(c); this.itemList = itemList ; } @Override public int getCount() { // TODO Auto-generated method stub return itemList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate( R.layout.mobark_organizational_structure_item, null); holder.name = (TextView) convertView .findViewById(R.id.id_treenode_label); holder.age = (TextView) convertView .findViewById(R.id.id_treenode_online); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.name.setText(itemList.get(position).getName()); if(!TextUtils.isEmpty(itemList.get(position).getAge())) { holder.age.setVisibility(View.VISIBLE); holder.age.setText(itemList.get(position).getAge()); }else { holder.age.setVisibility(View.GONE); } return convertView; } class ViewHolder { TextView name; // TextView department; TextView age; TextView header; // View divider; } }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 사용자 정의 LinkearLayout+XML에서 속성 및 표시이 글은 다음과 같은 두 가지 방법을 원하는 사람에게 참고가 될 수 있다. 1. 맞춤형 뷰를 제작한 후 사용하는 경우 2. 사용자 정의 XML에 사용자 정의 Attribute를 정의하고 사용하고자 하는 경우 그림 1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.