【问题标题】:FloatingActionButton inside framelayout not working框架布局内的 FloatingActionButton 不起作用
【发布时间】:2017-04-18 15:48:44
【问题描述】:

我想在 FloatingActionButton 上显示文本而不是图标。因此,我利用 FrameLayout 来实现这一点。但是,没有一个 onClickListerners 工作。我已经设置android:clickable="true" 仍然没有变化。 以下是我的示例布局文件:

    <FrameLayout
    android:id="@+id/frame"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_gravity="bottom|end"
    android:clickable="true"
    android:layout_margin="@dimen/activity_horizontal_margin">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <TextView
        android:id="@+id/text"
        android:layout_width="30dp"
        android:layout_height="match_parent"
        android:elevation="7dp"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:maxLines="3"
        android:text="My Text"
        android:clickable="true"
        android:textAllCaps="true"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@android:color/white"
        android:textSize="8sp"
        android:textStyle="bold" />
</FrameLayout>

我尝试使用这两种方法: 1.设置android:onClick="myMethod" 2. 以编程方式在 Activity 类中的所有三个元素上设置 onClickListener,即 FrameLayout、FAB 和 TextView

但是,我通常使用 FAB,即不使用 FrameLayout;它工作正常。

请提供一些解决方案。

编辑:Activity.java

    fab = (FloatingActionButton) findViewById(R.id.fab);
    text= (TextView) findViewById(R.id.text);
    frame = (FrameLayout) findViewById(R.id.frame);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myMethod();
        }
    });

    text.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myMethod();
        }
    });

    frame.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myMethod();
        }
    });

记录器实现存在于 myMethod() 中。似乎 onClick 事件没有被触发,因为我在控制台中看不到任何日志。

更新:: 布局文件还包含与 FrameLayout 处于同一级别的 RecyclerView。出现问题是因为 RecyclerView 的存在吗?

【问题讨论】:

  • 从框架布局中移除 android:clickable="true"..
  • 请发布您的点击事件代码
  • 使用浮动按钮重要吗?因为..你可以通过将圆形背景设置为按钮来实现。
  • @Uttam,按钮将有固定位置。我的视图包含回收站视图。所以我希望按钮浮动在列表项上

标签: android floating-action-button android-framelayout


【解决方案1】:

问题得到解决。我将 FrameLayout 上的 android:layout_anchor 设置为回收站视图 ID。现在按钮可以点击了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多