TabLayout上方的EditText和Button

时间:2016-09-26 18:13:56

标签: android

我有一个EditText和发送按钮位于TabLayout上面的XML。

  • 是否可以这样做,默认情况下,EditText和发送按钮不可见,但当用户点击某些按钮时,它会出现?
  • 用户应该能够保持EditText打开并滚动EditText所在的屏幕。
  • 这应该可以在任何标签中进行。

当我以前尝试过时,虽然我将EditText背景设置为白色,但用户可以查看并单击EditText后面的RecyclerView项目。

代表我想做的事情:

By default, the EditText and send button are hidden

When the user clicks "Reply", the EditText and send button appear

谢谢!

3 个答案:

答案 0 :(得分:0)

我希望我完全明白你想要的......

  • 您可以使用.setVisibility设置任何视图的可见性,然后选择Invisible / Visible / Gone 在OnCreate中将视图的可见性设置为Invisible,单击一个按钮,将可见性设置为Visible。

  • 您有两个选项,您可以将TextView对齐到屏幕顶部。 但我喜欢的是将用户需要在ScrollView中滚动的内容和ScrollView外的EditText滚动。

答案 1 :(得分:0)

在xml中将EditText和发送按钮的可见性设置为INVISIBLE,如下所示:

<EditText
    android:id="@+id/edit_text"
    ...
    android:visibility="invisible"/>

<Button 
   android:id="@+id/send_button"
   ...
   android:visibility="invisible"/>

然后点击某些按钮时,再次显示它:

EditText text = (EditText) view.findViewById(R.id.edit_text);
Button button = (Button) view.findViewById(R.id.send_button);
someButton.setOnClickListener(v -> {
    text.setVisibility(View.VISIBLE);
    button.setVisibility(View.VISIBLE);
});

答案 2 :(得分:0)

对于第一个问题:

  1. 将EditText和Send Button放入LinearLayout或RelativeLayout。
  2. 设置布局可见性消失或不可见。
  3. 覆盖onClickListener上的特定按钮,并将布局可见性设置为在该函数中可见
  4. 关于第二个问题:

    如果您想要这样做,可以像这样重叠2个布局。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
    </ScrollView>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:layout_alignParentBottom="true">
    
    </LinearLayout>
    

    ScrollView是主要的布局,它也可以像您提到的一样使用RecyclerView。 您可以将EditText和Button放入LinearLayout

    关于第三个问题:

    它应该适用于每个标签