0

我想在屏幕的頂部創建一行四個TextViews。該行應該由右側的TextView,左側的TextView以及與右側的TextView相鄰的兩個TextView組成。對於前兩種TextViews,下面的代碼工作正常:Android佈局 - 基於水平中心的定位視圖

<TextView 
android:id="@+id/textViewRight" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
android:paddingLeft="150dip" 
android:text="Right TextView" 
android:layout_alignParentTop="true" 
/> 
<TextView 
android:id="@+id/textViewLeft" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
android:text="Left TextView" 
android:layout_alignBaseline="@id/textViewRight" 
android:paddingRight="150dip" 
/> 

然而,當我嘗試添加更多TextViews像下面這樣:佈局預覽屏幕上

<EditText 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_toLeftOf="@id/textViewRight" 
android:layout_alignBaseline="@id/textViewRight" 
android:text="TextView L" 
android:inputType="number|numberSigned" 

/> 
<EditText 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_toRightOf="@id/textViewRight" 
android:layout_alignBaseline="@id/textViewRight" 
android:text="TextView R" 
android:inputType="number" 
    /> 

沒有什麼變化和兩個EditTexts不可見。

如何讓這兩個EditText出現?我應該使用邊距而不是填充?任何幫助是極大的讚賞!

以下是完整的佈局文件:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 




<TextView 
android:id="@+id/textViewRight" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
android:paddingLeft="150dip" 
android:text="Right TextView" 
android:layout_alignParentTop="true" 
/> 
<TextView 
android:id="@+id/textViewLeft" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
android:text="Left TextView" 
android:layout_alignBaseline="@id/textViewRight" 
android:paddingRight="150dip" 
/> 
<EditText 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_toLeftOf="@id/textViewRight" 
android:layout_alignBaseline="@id/textViewRight" 
android:text="TextView L" 
android:inputType="number|numberSigned" 

/> 
<EditText 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_toRightOf="@id/textViewRight" 
android:layout_alignBaseline="@id/textViewRight" 
android:text="TextView R" 
android:inputType="number" 
    /> 

</RelativeLayout> 

回答

0

我不認爲會有足夠的空間來添加所有這些傢伙在一個原始的,專爲手機,平板電腦沒有。

但是如果你想這樣做,最好用水平滾動視圖來包圍你的相對佈局,如下面的佈局。

也不使用填充或邊距只是將您的視圖推到所需的位置,它真的被認爲是一個糟糕的佈局設計。

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/textViewLeft" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/textViewRight" 
     android:layout_alignParentLeft="true" 
     android:text="Left TextView" /> 

    <EditText 
     android:id="@+id/editTextLeft" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/textViewRight" 
     android:layout_toRightOf="@id/textViewLeft" 
     android:inputType="number|numberSigned" 
     android:text="TextView L" /> 

    <TextView 
     android:id="@+id/textViewRight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/editTextLeft" 
     android:text="Right TextView" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@id/textViewRight" 
     android:layout_toRightOf="@id/textViewRight" 
     android:inputType="number" 
     android:text="TextView R" /> 
</RelativeLayout> 

1

我不說英語,但我可以幫你....在main.java

public class MAIN extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_prueba_js); 


    //    (POSX,POSY,WIDTH,HEIGHT, 0 TO 1.... 
    AutoSizeAndSetXY(TX1, 0.1, 0.1 , 0.3 , 0.3); 
    AutoSizeAndSetXY(TX2, 0.5, 0.1, 0.3 , 0.3); 
    AutoSizeAndSetXY(TX3, 0.1, 0.5 , 0.3 , 0.3); 
    AutoSizeAndSetXY(TX4, 0.5, 0.5, 0.3 , 0.3); 
} 



     public void AutoSizeAndSetXY(View v,double posX,double posY,double width,double height){ 
    Display display = getWindowManager().getDefaultDisplay(); 

    int widthP = display.getWidth(); 
    int heightP = display.getHeight(); 
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lp.setMargins(((int)Math.round(posX*widthP)),((int)Math.round(posY*heightP)), 1, 1); 
    v.setLayoutParams(lp); 
    v.getLayoutParams().height=(int)(Math.round(height*heightP)); 
    v.getLayoutParams().width=(int)(Math.round(width*widthP)); 

    } 
} 
+0

這可以用於按鈕,圖像和其他元素 – Jeltex

0

使用此功能...自動調整大小在這種情況下,我寧願用LinearLayout而不是RelativeLayout。而對於使用layout的editTexts和textViews具有相同的寬度:weight =「1」會很好。 (你可以刪除的一些意見的權重,並設置其寬度爲wrap_content您的需求)

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizantal"> 

<TextView 
    android:id="@+id/textViewLeft" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    layout_weight="1" 
    android:text="Left TextView"/> 

<EditText 
    android:id="@+id/editTextLeft" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    layout_weight="1" 
    android:inputType="number|numberSigned" 
    android:text="Left EditText" /> 



<EditText 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    layout_weight="1" 
    android:inputType="number" 
    android:text="Right EditText"/> 

<TextView 
    android:id="@+id/textViewRight" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    layout_weight="1" 
    android:text="Right TextView" />