【问题标题】:How to use android.support.design.widget.TabLayout to create custom layout of tab?如何使用 android.support.design.widget.TabLayout 创建选项卡的自定义布局?
【发布时间】:2016-01-20 23:10:44
【问题描述】:

我找到了关于如何设置customView 的以下文档。但是当我将布局中的id 更改为“text1”和“icon”时,setText()setIcon() 不起作用。

public TabLayout.Tab setCustomView (int layoutResId)

设置用于此选项卡的自定义视图。

如果膨胀的布局包含一个 ID 为 text1TextView,那么它将使用 setText(CharSequence) 的值进行更新。同样,如果此布局包含带有 ID 图标的ImageView,那么它将使用setIcon(Drawable) 的值进行更新。

(来源:http://developer.android.com/reference/android/support/design/widget/TabLayout.Tab.html#setCustomView(int)

谁能给我一个例子来说明这是如何工作的?

Java 代码:

    TabLayout.Tab tabAdd = tabLayout.getTabAt(0);
    tabAdd.setCustomView(R.layout.tab_layout_custom_view);
    tabAdd.setText("Add");
    tabAdd.setIcon(R.mipmap.add_tab).setText("Add");

布局代码:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/icon"/>
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:id="@+id/text1"
    android:gravity="center"
    android:layout_below="@+id/icon" />

【问题讨论】:

标签: android


【解决方案1】:

您需要使用系统资源标识符。即@android:id/text1@android:id/icon

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@android:id/icon"/>
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:id="@android:id/text1"
    android:gravity="center"
    android:layout_below="@android:id/icon" />

如果您需要在代码中引用这些 ID,它们将是 android.R.id.text1android.R.id.icon

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 2015-11-17
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多