Android在运行时从XML获取View值

时间:2019-03-06 08:45:47

标签: android xml kotlin

我有一个包含布局,视图和FAB的协调器布局。问题在于运行时的布局不可见。在指定的事件中,我必须

  1. 获取位置和边距(或尺寸和边距-然后可以根据屏幕尺寸计算位置...)
  2. 使用main_fab.show()更改其可见性

我的布局文件:

<androidx.coordinatorlayout.widget.CoordinatorLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/main_coordinator_containter">
<!-- omitted -->
<Layout1>
    <!-- omitted -->
</Layout1>
    <!-- omitted -->
    <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/main_fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:layout_margin="16dp"                
            app:srcCompat = "@drawable/ic_chat_bubble_outline_black_24dp"
            />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

在代码中,我尝试了以下操作:

//... code block

var mFabWidth=0
var mFabHeight=0

//... code block

    fun getCurrentFabValues(){
      mFabWidth=main_fab.width
      mFabHeight=main_fab.height
      /* and I also need it's default size and margin values */
    }

由于在指定时刻FAB不可见,所以main_fab.width和main_fab.height返回0。此外,我不知道如何获取页边距和默认大小。 有人可以帮我如何从XML检索那些值吗? 提前致谢!

0 个答案:

没有答案