动态布局类似于人们的app

时间:2014-05-11 10:43:00

标签: android xml layout

我试图取得类似的结果:

http://cdn7.staztic.com/app/a/2541/2541494/share-my-contact-unlocker-2-0-s-307x512.jpg

联系人可能有也可能没有电子邮件地址或其他个人资料信息。是否有可能通过XML实现大部分内容?或者是否所有这些都需要通过Java完成?

以下是我认为可以解决的伪代码:

if(contact.hasPhoneNumber)

联系中的foreach号码

膨胀r.layout.contact_number

settext phonenumber textview

为布局添加视图

有更聪明的方法吗?

1 个答案:

答案 0 :(得分:0)

通过以下方式解决了这个问题:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/contactContent"
    android:layout_below="@+id/profile_background">
    <LinearLayout android:orientation="vertical" android:id="@+id/c_detail_content_main" android:paddingBottom="50.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
        <LinearLayout android:orientation="vertical" android:visibility="gone"  android:id="@+id/c_detail_birthday_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="20.0dip">
</LinearLayout
</ScrollView>

以下代码:

if (this.contact.hasPhoneNumber())
    {
        LinearLayout phoneNumberContent = (LinearLayout) view.findViewById(R.id.c_detail_phone_layout);
        phoneNumberContent.setVisibility(View.VISIBLE);
        for (PhoneNumber number : this.contact.getPhoneNumbers())
        {
            LinearLayout tempNumberContent = new LinearLayout(this.getActivity().getApplicationContext());
            TextView type = new TextView(this.getActivity().getApplicationContext());
            TextView phoneNo = new TextView(this.getActivity().getApplicationContext());
            type.setWidth(LayoutTools.getDPMeasurement(this.getActivity(), 85));
            phoneNo.setText(number.getNumber());
            tempNumberContent.addView(type);
            tempNumberContent.addView(phoneNo);
            phoneNumberContent.addView(tempNumberContent);
        }
    }