android - 如何将一个 View 的顶部与另一个 View 的垂直中心对齐?

标签 android android-relativelayout

我需要将 View2 左上角与 View1 的中心对齐,但我不知道该怎么做。

enter image description here

最佳答案

这是怎么做的!

制作一个类似的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:background="#FFFF99" >

    <LinearLayout
        android:id="@+id/view1"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_margin="10dp"
        android:background="#440000"
        android:orientation="horizontal" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/view1"
        android:layout_alignTop="@id/view1"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/view2"
            android:layout_width="200dp"
            android:layout_height="100dp"
            android:background="#99004400"
            android:orientation="horizontal" >
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

在你的 Activity 中

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }


    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        super.onWindowFocusChanged(hasFocus);
         LinearLayout v1=(LinearLayout)findViewById(R.id.view1);
            LinearLayout v2=(LinearLayout)findViewById(R.id.view2);
            LinearLayout container=(LinearLayout)findViewById(R.id.container);
            int heightV1=v1.getHeight();
            int widthV1=v1.getWidth();
            container.setPadding(widthV1/2, heightV1/2, 0, 0);
    }

给出类似的输出

enter image description here

关于android - 如何将一个 View 的顶部与另一个 View 的垂直中心对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958256/

相关文章:

android - Cordova "hello world"应用程序不会显示

android - 在 Android Studio 中,运行 64 位 Windows,我应该将 AVD 中的虚拟设备设置为 86x64 还是 86?

java - 动态添加 View 到RelativeLayout不起作用

android - Android LinearLayout 或RelativeLayout 帮助

android - 在主要相对布局中对齐两个相对布局

android - MediaPlayer在从字节 block 中播放mp3时崩溃了吗?

android - 如何从android中的其他 Activity 获取数据?

android - 发现任务 ':app:generateSafeArgsDebug'(类型 'ArgumentsGenerationTask')的配置存在一些问题。将 gradle 升级到 7.0 后

android - 在 RelativeLayout 顶部显示 ImageView

java - 如何动态添加某个元素下方的相对布局