2017-03-03 45 views
1

嗨我有一個ScrollView和一個垂直LinearLayout裏面。在每個LinearLayout插槽裏面,我有一個水平的LinearLayout,它包含一個詞和一個數字兩個詞。問題是一些隱藏的話?它佔據了屏幕的一半。謝謝你的幫助。LinearLayout使用半屏

Layout bounds

Problem


for (int i = 0; i < words.size(); i++) { 
    LinearLayout horizontal = new LinearLayout(context); 
    horizontal.setOrientation(LinearLayout.HORIZONTAL); 
    LinearLayout.LayoutParams LLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
    horizontal.setLayoutParams(LLParams); 

    btnWord.add(i, new Button(context)); 
    btnWord.get(i).setHeight(60); 
    btnWord.get(i).setWidth(120); 
    btnWord.get(i).setTypeface(montFont); 
    btnWord.get(i).setBackgroundColor(Color.WHITE); 
    btnWord.get(i).setTag(i); 
    btnWord.get(i).setGravity(Gravity.CENTER); 
    btnWord.get(i).setText(" " + words.get(i)); 
    btnWord.get(i).setOnClickListener(btnClicked); 
    horizontal.addView(btnWord.get(i)); 

    wordWeight.add(i, new Button(context)); 
    wordWeight.get(i).setHeight(60); 
    wordWeight.get(i).setWidth(40); 
    wordWeight.get(i).setTypeface(montFont); 
    wordWeight.get(i).setBackgroundColor(Color.WHITE); 
    wordWeight.get(i).setTag(i); 
    wordWeight.get(i).setGravity(Gravity.CENTER); 
    wordWeight.get(i).setText(" " + wordWeights.get(i)); 
    wordWeight.get(i).setOnClickListener(btnClicked); 
    horizontal.addView(wordWeight.get(i)); 

    linearLayout.addView(horizontal); 
} 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white"> 


    <ScrollView 
     android:layout_width="match_parent" 
     style="@android:style/Widget.ScrollView" 
     android:layout_marginTop="106dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:id="@+id/linearLayout" /> 

    </ScrollView> 
</RelativeLayout> 
+0

轉到您的開發人員選項並激活您的「顯示佈局邊界」,再拍一張截圖並在此處張貼。 – Mauker

+0

@Mauker –

+1

添加了佈局邊界爲什麼不使用帶有自定義適配器或「RecyclerView」的'ListView'而不是通過編程方式添加Views? – Mauker

回答

2

你可以嘗試設置每一個 「項目」,以1 weight所以他們將平分在屏幕上的空間。像下面的代碼片段:

LinearLayout ll; 
LinearLayout.LayoutParams lp; 
lp.weight = 1; 
ll.setLayoutParams(lp); 

你也可以認爲溝邏輯和使用ListView與自定義適配器像我一樣對this answer,或設置一個RecyclerView,你可以看到this blog post。做任何一種方法都更容易,更高效。

更多關於ListViewRecyclerViewhere

+3

這是OP正在使用的錯誤解決方案的「正確」答案。 :)使用權重並以編程方式創建此列表效率較低,難以維護,比刪除簡單的ListView或RecyclerView要困難得多。但+1爲解決問題:) –