นี่คือสิ่งที่ฉันทำและฉันยินดีที่จะบอกว่าสิ่งนี้ใช้ได้กับฉัน ฉันก็ต้องการตารางรายการ 2x2, 3x3 ฯลฯ เพื่อครอบคลุมทั้งหน้าจอ Gridlayouts ไม่เป็นไปตามความกว้างของหน้าจอ LinearLayouts ชนิดของงาน แต่คุณไม่สามารถใช้น้ำหนักที่ซ้อนกัน
ตัวเลือกที่ดีที่สุดสำหรับฉันคือการใช้เศษผมใช้นี้บทช่วยสอนเพื่อเริ่มต้นกับสิ่งที่ฉันต้องการจะทำ
นี่คือรหัสบางส่วน:
กิจกรรมหลัก:
public class GridHolderActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_6);
}
}
activity_main_6 XML (ขยาย 3 ส่วน)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/frag1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:name=".TwoHorizontalGridFragment"
tools:layout="@layout/two_horiz" />
<fragment
android:id="@+id/frag2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:name=".TwoHorizontalGridFragment"
tools:layout="@layout/two_horiz" />
<fragment
android:id="@+id/frag3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:name=".Grid.TwoHorizontalGridFragment"
tools:layout="@layout/two_horiz" />
เค้าโครงส่วนฐาน
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="match_parent">
<ImageQueue
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/img1"
android:layout_weight="1"/>
<ImageQueue
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/img2"
android:layout_weight="1"/>
</LinearLayout>
Fragment Class (จัดการเฉพาะการเริ่มต้นของมุมมองที่กำหนดเอง) ขยาย 2 แผ่นต่อชิ้นส่วน
public class TwoHorizontalGridFragment extends Fragment {
private View rootView;
private ImageQueue imageQueue1;
private ImageQueue imageQueue2;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
/**
* Inflate the layout for this fragment
*/
rootView = inflater.inflate(
R.layout.two_horiz, container, false);
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
imageQueue1 = (ImageQueue)rootView.findViewById(R.id.img1);
imageQueue2 = (ImageQueue)rootView.findViewById(R.id.img2);
imageQueue1.updateFiles();
imageQueue2.updateFiles();
}
}
แค่นั้นแหละ!
นี่เป็นงานแปลก ๆ ที่ใช้น้ำหนักที่ซ้อนกันเป็นหลัก มันให้ตาราง 2x3 ที่สมบูรณ์แบบที่เติมเต็มทั้งหน้าจอของแท็บเล็ต 10 นิ้วและ HTC droid DNA ของฉัน แจ้งให้เราทราบว่ามันเป็นอย่างไรสำหรับคุณ!