小编gtR*_*nkN的帖子

具有内部间距的Android NavigationView

我目前正在开发一个支持NavigationView的Android应用程序.我不得不质疑我想要它:(1)我想将导航元素分成两个区域:一个位于标题下方,一个位于底端.(2)我想删除分隔符和它下面的元素之间的填充.

它看起来如何看起来应该如何: 它的外观与它的外观

我知道有一种方法可以覆盖填充值,这将修复(2).但这感觉有点脏,也许还有另一种方法可以实现这两点.我的想法是获取"设置"元素并以编程方式更改其布局,但到目前为止,我还没有找到一种方法来实现这一点.或者我真的必须自己构建页脚?

另外,我不太确定我应该用Google搜索什么流行语.也许已经有一个简单的答案了.

我目前的代码.现在Activity内部没有布局更改,因此我没有添加它.

activity_main.xml中:

<android.support.v4.widget.DrawerLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".main.MainActivity">

    <!-- The content -->
    <LinearLayout>...</LinearLayout>

    <!-- The navigation drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/main_navigationview"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        app:headerLayout="@layout/mainnav_header"
        app:itemBackground="@drawable/menu_background"
        app:itemIconTint="@color/menu_text"
        app:itemTextColor="@color/menu_text"
        app:menu="@menu/maindrawer">

    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

menu.xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<group android:id="@+id/main_drawer_menu1" android:checkableBehavior="single">
    <item
        android:id="@+id/main_navigationview_request"
        android:checkable="false"
        android:enabled="false"
        android:icon="@drawable/ic_navigationdrawer_request"
        android:title="@string/main_navigation_request"
        app:actionLayout="@layout/menuitem_default" />
    <item
        android:id="@+id/main_navigationview_invitations"
        android:checked="true"
        android:icon="@drawable/ic_navigationdrawer_invitations"
        android:title="@string/main_navigation_invitations"
        app:actionLayout="@layout/menuitem_default" />
    <item
        android:id="@+id/main_navigationview_prev"
        android:icon="@drawable/ic_navigationdrawer_previous"
        android:title="@string/main_navigation_previnvites"
        app:actionLayout="@layout/menuitem_default" />
    <item
        android:id="@+id/main_navigationview_info"
        android:icon="@drawable/ic_navigationdrawer_info"
        android:title="@string/main_navigation_info"
        app:actionLayout="@layout/menuitem_default" />
</group>
<group android:id="@+id/main_drawer_menu2" android:checkableBehavior="single">
    <item
        android:id="@+id/main_navigationview_settings"
        android:checked="true"
        android:icon="@drawable/ic_navigationdrawer_settings" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-menu navigationview

5
推荐指数
1
解决办法
1642
查看次数

在 React Native 上传递触摸事件

我们构建了一个 React Native 平板电脑亭应用程序,它向前台的用户显示多页输入字段。用户必须填写所有表格并在最后发送它们。

用户可以随时离开信息亭,这将导致他们的最后一个屏幕成为下一个用户的“欢迎屏幕”。为避免这种情况,如果没有用户交互(屏幕上的任何触摸事件),应用程序会在一段时间后重置。

现在,我们使用倒计时并在每个输入字段、按钮和背景触摸上重置它。这导致将重置回调传递给许多组件。它有效,但它只是很多冗余,很容易导致错误。

有没有什么办法,我们可以在view的最上面加一个overlay,可以捕获所有的touch事件并调用reset回调,同时也可以将touch事件传递给下面的views?因此,当用户单击按钮时,覆盖层会调用其回调,但也会单击按钮(输入字段等也是如此)。

我们还尝试了手势响应系统,但无法让触摸事件通过——它总是被带有手势响应系统的组件所消耗。

overlay touch touch-event react-native

5
推荐指数
1
解决办法
4553
查看次数

按下时更改Android ListView条目中的图标

我目前正在尝试在Android中实现一个ListView,其中包含带有图标和描述文本的行.当用户按下一行时,背景颜色应该改变,图标应该被替换,如下图所示.正常和压迫状态

使用选择器更改背景没有问题.但我只是想不出一个简单的方法来改变图标.我尝试的是添加2个相互重叠的图标:

<RelativeLayout
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/general_list_item_icon"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="centerInside" />

    <ImageView
        android:id="@+id/general_list_item_icon_active"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:visibility="gone" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

然后我在每个ImageView中放置一个drawable,并希望在用户按下该行时切换可见性.是否有可能使用类似于背景的选择器来执行此操作?

另外:由于ListView是动态填充的,因此使用带有静态可绘制引用的选择器不起作用.

android listview visibility android-imageview android-selector

3
推荐指数
1
解决办法
2990
查看次数