Bir LinearLayout'a programsal olarak bir parça eklemeye çalışıyorum, ancak parça tüm düzenleri yüksekliğinde içeriğini genişletmiyor. Fill_parent yerine wrap_content gibi davranır.Android 3 - LinearLayout bir Parçacığı Ekleme: fill_parent çalışmıyor
Diğer tarafta, fill_parent parçanın genişliği üzerinde çalışır. Bu davranışı nasıl değiştirebilirim?
DashboardActivity:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment
android:id="@+id/fragment_dashboard"
android:layout_width="5dp"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:layout_weight="1"
android:name="de.upb.cs.ginkgo.tablet.ui.fragments.DashboardFragment" >
<!-- Preview: [email protected]/fragment_dashboard -->
</fragment>
<LinearLayout
android:id="@+id/rightfrag"
android:layout_width="450dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp"
android:layout_marginRight="10dp" >
</LinearLayout>
</LinearLayout>
Onun onCreate yöntemi:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
//-- Instantiate Fragmentstuff
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
ActivitystreamFragment asf = new ActivitystreamFragment();
fragmentTransaction.add(R.id.rightfrag, asf);
fragmentTransaction.commit();
}
ActivitystreamFragment XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<ListView
android:id="@+id/android:list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawSelectorOnTop="true"
android:background="@drawable/back_rightfrag"
>
</ListView>
</LinearLayout>
Ve CreateView:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_activitystream, null);
return root;
}
Teşekkürler. Ama neden FrameLayout çalışıyor bilmiyorum ama LinearLayout yok –
Eğer FrameLayout * içinde LinearLayout * koyarak deneyin mi? – zmbq
@NguyenMinhBinh: FrameLayout, çocuklarını birbirinin üzerine koyduğundan, diğer taraftan bir LinearLayout, çocuğunu bir sonraki (yatay veya dikey) duruma getirir. Geçişler işe yarıyor, ancak yeni eklenen Fragman ekranın dışında. – Kuno