2016-03-31 45 views
0

我正在以編程方式將圖片添加到linearlayout。這個線性佈局被一個horizo​​ntalscrollview和一個listview項目佈局的一部分所包圍。當我與其他視圖中的項目有圖片內聯,它們間隔旁邊的海誓山盟正確: enter image description hereandroid - 添加到線性佈局更改項目的間距

但是如果我在其他視圖項目下移動horizo​​ntalscrollview/LinearLayout中,我得到的android一些怪異的間距似乎做自動: enter image description here

到目前爲止,我已經試過relativelayouts,嵌入式linearlayouts,改變填充,更改頁邊距,改變match_parent,FILL_PARENT和WRAP_CONTENT之間的LinearLayout的width屬性,但沒有改變這個間距。它總是一樣的。

下面是相關代碼:

LinearLayout tmpLL = (LinearLayout) convertView.findViewById(R.id.llUpgrades); 

     //remove previous list contents first 
     tmpLL.removeAllViews(); 

     for(int i = 0; i<= tmpUpgradeList.size()-1; i++){ 

      ImageView tmpIB = new ImageView(getContext()); 
      Upgrade tmpUpgrade = tmpUpgradeList.get(i); 
      Upgrade.setUpgradePic(tmpIB, tmpUpgrade, tmpUpgrade.Title()==null); 
      tmpIB.setTag(position + ":" + i); 
      tmpIB.setPadding(5, 0, 0, 0); 
      tmpIB.setMaxWidth(50); 

      tmpLL.addView(tmpIB); 

      tmpIB.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
         String[] split = ((String) v.getTag()).split(":"); 
        runUpgradePopup(Integer.parseInt(split[0]), Integer.parseInt(split[1])); 
       } 
      }); 

      tmpIB.setOnLongClickListener(new View.OnLongClickListener() { 
       @Override 
       public boolean onLongClick(View v) { 
        String[] split = ((String) v.getTag()).split(":"); 
        clearUpgrade(Integer.parseInt(split[0]), Integer.parseInt(split[1])); 
        return true; 
       } 
      }); 

     } 

在導致錯誤的佈局。其他佈局正確地把卡靠近對方,但我所有不同的是,它是一個線性佈局和刪除相關的相對位置的呼叫:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:paddingTop="5dp" 
    android:paddingBottom="5dp"> 


     <Button 
      android:layout_width="100dp" 
      android:layout_height="60dp" 
      android:id="@+id/btnFRemoveShip" 
      android:text="Remove"/> 

     <ImageView 
      android:id="@+id/ivFRowShipIcon" 
      android:layout_height="60dp" 
      android:layout_width="75dp" 
      android:src="@android:drawable/ic_delete" 
      android:layout_marginLeft="10dp" 
      android:layout_toRightOf="@+id/btnFRemoveShip"/> 


     <TextView 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:layout_width="wrap_content" 
      android:id="@+id/tvFRowShipTitle" 
      android:text="error" 
      android:textSize="20dp" 
      android:layout_marginLeft="10dp" 
      android:layout_toRightOf="@+id/ivFRowShipIcon"/> 



     <HorizontalScrollView 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="75dp" 
      android:layout_marginTop="5dp" 
      android:layout_below="@+id/btnFRemoveShip"> 

      <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:id="@+id/llUpgrades"> 
      </LinearLayout> 
     </HorizontalScrollView> 


</RelativeLayout> 

任何幫助,不勝感激!

+0

嘗試WRAP_CONTENT滾動和線性佈局。 –

+0

nerp,嘗試滾動/包裝,線性/填充和滾動/包裝,線性/包裝但完全相同的結果 – Bulsatar

回答

0

花了幾天時間重新說明問題,但最終找到了答案。 只有在將圖像添加到佈局之前添加此行。

tmpIB.setAdjustViewBounds(true); 

主題是在這裏:found answer

相關問題