<RelativeLayout
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="#b4d3d3">
<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#5d737e"
android:padding="20dp"
android:text="First" />
<TextView
android:id="@+id/world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/hello"
android:padding="20dp"
android:text="Second" />
</RelativeLayout>
这是我的xml我希望设置两个textview里面相对布局等于部分horzontally但是使用这个xml左边textview只是很少一部分而右边一个占用很多空间请告诉我我做错了什么。
答案 0 :(得分:1)
尝试此操作您可以使用LinearLayout
为Weight
设置相同的TextView
,如下面的代码
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:id="@+id/hello"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#5d737e"
android:layout_weight="1"
android:padding="20dp"
android:text="First" />
<TextView
android:id="@+id/world"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Second" />
</LinearLayout>
如果你想使用RelativeLayout
而不是试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center">
<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#5d737e"
android:padding="20dp"
android:text="First" />
<TextView
android:id="@+id/world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/hello"
android:padding="20dp"
android:text="Second" />
</RelativeLayout>
答案 1 :(得分:1)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="#b4d3d3">
<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#5d737e"
android:padding="20dp"
android:text="First" />
<TextView
android:id="@+id/world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/hello"
android:padding="20dp"
android:text="Second" />
您可以像下面的代码一样以编程方式设置宽度子视图,并轻松管理不同的设备大小:
private TextView hello, world;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hello = findViewById(R.id.hello);
world = findViewById(R.id.world);
RelativeLayout.LayoutParams relativeParam = (RelativeLayout.LayoutParams) hello.getLayoutParams();
relativeParam.width = getDeviceWidth(MainActivity.this) * 50 / 100;
hello.setLayoutParams(relativeParam);
RelativeLayout.LayoutParams relativeParamWorld = (RelativeLayout.LayoutParams) world.getLayoutParams();
relativeParamWorld.width = getDeviceWidth(MainActivity.this) * 50 / 100;
world.setLayoutParams(relativeParamWorld);
}
public int getDeviceWidth(Context context) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return metrics.widthPixels;
}
答案 2 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="#b4d3d3">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#5d737e"
android:padding="20dp"
android:layout_weight="1"
android:text="First" />
<TextView
android:id="@+id/world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/hello"
android:padding="20dp"
android:layout_weight="1"
android:text="Second" />
</LinearLayout>
</RelativeLayout>
答案 3 :(得分:0)
尝试以下代码
<RelativeLayout
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="#b4d3d3"
android:weightSum="2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:layout_weight="1"
android:id="@+id/hello"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#5d737e"
android:padding="20dp"
android:text="First" />
<TextView
android:layout_weight="1"
android:id="@+id/world"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/hello"
android:padding="20dp"
android:text="Second" />
</LinearLayout>
</RelativeLayout>
答案 4 :(得分:0)
使用完美体重概念
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:id="@+id/hello"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#5d737e"
android:layout_weight="1"
android:padding="20dp"
android:text="First" />
<TextView
android:id="@+id/world"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Second" />
</LinearLayout>