我正在尝试在屏幕顶部创建一行四个TextView。该行应包含右侧的TextView,左侧的TextView和右侧TextView旁边的两个TextView。对于前两个TextView,以下代码可以正常工作:
<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"
/>
但是,当我尝试添加更多TextView时,如下所示:
<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不可见。
如何显示最后两个EditTexts?我应该使用边距而不是填充吗?非常感谢任何帮助!
以下是完整的布局文档:
<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 :(得分: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));
}
}
答案 1 :(得分: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>
答案 2 :(得分:0)
在这种情况下,我宁愿使用LinearLayout而不是RelativeLayout。并且对于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" />