原生基抽屉点击关闭不考虑openDrawerOffset

时间:2017-08-11 01:33:27

标签: react-native drawer native-base

我使用的是Native-Base tapToClose组件,并且我自己将<Drawer tapToClose={true} openDrawerOffset={1 - (300 / Dimensions.get('window').width)} // this has to be 300 wide initializeOpen={true} ref={(ref) => { this.drawer = ref; }} // not really using this anymore content={ <SideBarView navigator={this.navigator} closeDrawer={this.closeDrawer.bind(this)} /> } onClose={() => this.closeDrawer()} > <MainViewTitlebar title={this.props.title} openDrawer={this.openDrawer.bind(this)} navigation={this.props.navigation}> </MainViewTitlebar> <View style={styles.content}> {this.renderMainView()} </View> </Drawer> 值设置为300宽(请参阅下面的代码)。我的主要问题是<div [ngClass]="{'ng-invalid': input?.invalid, 'ng-valid': input?.valid, 'ng-pristine': input?.pristine}"> <input [name]="control.id" [(ngModel)]="control.value" required #input="ngModel"> </div> 表现为抽屉是默认宽度,只响应屏幕最后15%左右的点击。

这是原生基地的错误吗?是否有解决方法?

我的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static Semaphore semaphore = new Semaphore(5, 5);
        static void Main(string[] args)
        {
            Task.Factory.StartNew(() =>
            {
                for (int i = 1; i <= 15; ++i)
                {
                    PrintSomething(i);
                    if (i % 5 == 0)
                    {
                        Thread.Sleep(2000);
                    }
               }
            });
            Console.ReadLine();
        }

        public static void PrintSomething(int number)
        {
            semaphore.WaitOne();
            Console.WriteLine(number);
            semaphore.Release();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以设置与 openDrawerOffset 相同的 panCloseMask 道具来实现此目的。