[英]how to set two textview equal size horizontally in relative layout
<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設置成水平相等,但是使用此xml左邊的textview只占很少的一部分,而右邊的占很大空間,請告訴我我在做什么錯。
試試這個,您可以實現,使用LinearLayout
只需為兩個TextView
設置相同的權Weight
,如下面的代碼
<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>
<?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;
}
<?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>
嘗試下面的代碼
<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>
使用完美的體重概念
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.